From a02f6587d8916dc07eb6084d6d7f051abdecf0c4 Mon Sep 17 00:00:00 2001 From: Jack Dishman Date: Wed, 5 Jun 2024 13:20:10 -0400 Subject: [PATCH 1/8] feat: use hardhat-zksync project --- packages/hardhat/zksync-hardhat/.env.example | 1 + packages/hardhat/zksync-hardhat/.gitignore | 113 + packages/hardhat/zksync-hardhat/LICENSE | 21 + packages/hardhat/zksync-hardhat/README.md | 51 + .../zksync-hardhat/contracts/Greeter.sol | 18 + .../contracts/erc20/MyERC20Token.sol | 27 + .../zksync-hardhat/contracts/nft/MyNFT.sol | 39 + .../paymasters/ApprovalPaymaster.sol | 126 + .../contracts/paymasters/GeneralPaymaster.sol | 79 + .../contracts/ts/claim/BasicDistributor.sol | 52 + .../ts/claim/ContinuousVestingMerkle.sol | 74 + .../ts/claim/PriceTierVestingMerkle.sol | 80 + .../ts/claim/TrancheVestingMerkle.sol | 70 + .../ts/claim/abstract/AdvancedDistributor.sol | 208 + .../ts/claim/abstract/ContinuousVesting.sol | 80 + .../claim/abstract/CrosschainDistributor.sol | 92 + .../ts/claim/abstract/Distributor.sol | 128 + .../contracts/ts/claim/abstract/MerkleSet.sol | 53 + .../ts/claim/abstract/PriceTierVesting.sol | 140 + .../ts/claim/abstract/TrancheVesting.sol | 124 + .../AdvancedDistributorInitializable.sol | 213 + .../ContinuousVestingInitializable.sol | 77 + .../ContinuousVestingMerkleDistributor.sol | 71 + ...tinuousVestingMerkleDistributorFactory.sol | 112 + .../factory/DistributorInitializable.sol | 118 + .../claim/factory/FairQueueInitializable.sol | 81 + .../claim/factory/MerkleSetInitializable.sol | 52 + .../factory/TrancheVestingInitializable.sol | 105 + .../TrancheVestingMerkleDistributor.sol | 71 + ...TrancheVestingMerkleDistributorFactory.sol | 101 + .../GovernorMultiSourceUpgradeable.sol | 157 + .../GovernorVotesMultiSourceUpgradeable.sol | 87 + .../TimelockControllerUpgradeable.sol | 19 + .../contracts/ts/interfaces/IAdjustable.sol | 31 + .../contracts/ts/interfaces/IConnext.sol | 38 + .../ts/interfaces/IContinuousVesting.sol | 23 + .../contracts/ts/interfaces/ICrosschain.sol | 22 + .../contracts/ts/interfaces/IDistributor.sol | 79 + .../contracts/ts/interfaces/IERC20.sol | 4 + .../ts/interfaces/IERC20Extended.sol | 8 + .../ts/interfaces/IERC20Metadata.sol | 4 + .../ts/interfaces/IHashflowQuote.sol | 49 + .../contracts/ts/interfaces/IMerkleSet.sol | 9 + .../IOracleOrL2OracleWithSequencerCheck.sol | 14 + .../ts/interfaces/IPriceTierVesting.sol | 37 + .../ts/interfaces/ITrancheVesting.sol | 19 + .../contracts/ts/interfaces/IVesting.sol | 9 + .../contracts/ts/interfaces/IVoting.sol | 15 + .../contracts/ts/interfaces/IXReceiver.sol | 13 + .../contracts/ts/mocks/ConnextMock.sol | 76 + .../ts/mocks/FakeChainlinkOracle.sol | 220 + .../GovernorMultiSourceUpgradeableMock.sol | 36 + .../contracts/ts/mocks/HashflowRouterMock.sol | 68 + .../contracts/ts/payment/Payment.sol | 457 ++ .../contracts/ts/sale/v2.1/FlatPriceSale.sol | 575 ++ .../ts/sale/v2.1/FlatPriceSaleFactory.sol | 56 + .../contracts/ts/sale/v2.1/Sale.sol | 62 + .../contracts/ts/token/ERC20.sol | 58 + .../contracts/ts/token/ERC20Votes.sol | 34 + .../contracts/ts/utilities/FairQueue.sol | 78 + .../contracts/ts/utilities/Registry.sol | 63 + .../contracts/ts/utilities/Sweepable.sol | 55 + .../hardhat/zksync-hardhat/deploy/deploy.ts | 19 + .../zksync-hardhat/deploy/erc20/deploy.ts | 10 + .../hardhat/zksync-hardhat/deploy/interact.ts | 36 + .../zksync-hardhat/deploy/nft/deploy.ts | 10 + .../hardhat/zksync-hardhat/deploy/utils.ts | 169 + .../deployments-zk/zkSyncMainnet/.chainId | 1 + .../ts/token/ERC20.sol/GenericERC20.json | 318 ++ .../zkSyncSepoliaTestnet/.chainId | 1 + .../ContinuousVestingMerkleDistributor.json | 1584 ++++++ ...inuousVestingMerkleDistributorFactory.json | 203 + .../TrancheVestingMerkleDistributor.json | 1621 ++++++ ...rancheVestingMerkleDistributorFactory.json | 247 + .../FlatPriceSale_v_2_1.json | 987 ++++ .../FlatPriceSaleFactory_v_2_1.json | 267 + .../ts/token/ERC20.sol/GenericERC20.json | 318 ++ .../hardhat/zksync-hardhat/hardhat.config.ts | 52 + packages/hardhat/zksync-hardhat/package.json | 35 + .../hardhat/zksync-hardhat/pnpm-lock.yaml | 5030 +++++++++++++++++ .../test/erc20/myerc20token.test.ts | 50 + .../zksync-hardhat/test/greeter.test.ts | 21 + .../zksync-hardhat/test/nft/mynft.test.ts | 52 + 83 files changed, 16083 insertions(+) create mode 100644 packages/hardhat/zksync-hardhat/.env.example create mode 100644 packages/hardhat/zksync-hardhat/.gitignore create mode 100644 packages/hardhat/zksync-hardhat/LICENSE create mode 100644 packages/hardhat/zksync-hardhat/README.md create mode 100644 packages/hardhat/zksync-hardhat/contracts/Greeter.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/erc20/MyERC20Token.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/nft/MyNFT.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/paymasters/ApprovalPaymaster.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/paymasters/GeneralPaymaster.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/BasicDistributor.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/ContinuousVestingMerkle.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/PriceTierVestingMerkle.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/TrancheVestingMerkle.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/AdvancedDistributor.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/ContinuousVesting.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/CrosschainDistributor.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/Distributor.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/MerkleSet.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/PriceTierVesting.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/TrancheVesting.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/AdvancedDistributorInitializable.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingInitializable.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/DistributorInitializable.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/FairQueueInitializable.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/MerkleSetInitializable.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingInitializable.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/governance/GovernorMultiSourceUpgradeable.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/governance/GovernorVotesMultiSourceUpgradeable.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/governance/TimelockControllerUpgradeable.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IAdjustable.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IConnext.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IContinuousVesting.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/ICrosschain.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IDistributor.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20Extended.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20Metadata.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IHashflowQuote.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IMerkleSet.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IOracleOrL2OracleWithSequencerCheck.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IPriceTierVesting.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/ITrancheVesting.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IVesting.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IVoting.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IXReceiver.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/mocks/ConnextMock.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/mocks/FakeChainlinkOracle.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/mocks/GovernorMultiSourceUpgradeableMock.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/mocks/HashflowRouterMock.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/payment/Payment.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSale.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/Sale.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/token/ERC20.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/token/ERC20Votes.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/utilities/FairQueue.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/utilities/Registry.sol create mode 100644 packages/hardhat/zksync-hardhat/contracts/ts/utilities/Sweepable.sol create mode 100644 packages/hardhat/zksync-hardhat/deploy/deploy.ts create mode 100644 packages/hardhat/zksync-hardhat/deploy/erc20/deploy.ts create mode 100644 packages/hardhat/zksync-hardhat/deploy/interact.ts create mode 100644 packages/hardhat/zksync-hardhat/deploy/nft/deploy.ts create mode 100644 packages/hardhat/zksync-hardhat/deploy/utils.ts create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/.chainId create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/token/ERC20.sol/GenericERC20.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/.chainId create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol/FlatPriceSaleFactory_v_2_1.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/token/ERC20.sol/GenericERC20.json create mode 100644 packages/hardhat/zksync-hardhat/hardhat.config.ts create mode 100644 packages/hardhat/zksync-hardhat/package.json create mode 100644 packages/hardhat/zksync-hardhat/pnpm-lock.yaml create mode 100644 packages/hardhat/zksync-hardhat/test/erc20/myerc20token.test.ts create mode 100644 packages/hardhat/zksync-hardhat/test/greeter.test.ts create mode 100644 packages/hardhat/zksync-hardhat/test/nft/mynft.test.ts diff --git a/packages/hardhat/zksync-hardhat/.env.example b/packages/hardhat/zksync-hardhat/.env.example new file mode 100644 index 00000000..c65faa8c --- /dev/null +++ b/packages/hardhat/zksync-hardhat/.env.example @@ -0,0 +1 @@ +WALLET_PRIVATE_KEY= diff --git a/packages/hardhat/zksync-hardhat/.gitignore b/packages/hardhat/zksync-hardhat/.gitignore new file mode 100644 index 00000000..6144bb56 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/.gitignore @@ -0,0 +1,113 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.vscode + +# hardhat artifacts +artifacts +cache + +# zksync artifacts +artifacts-zk +cache-zk + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port diff --git a/packages/hardhat/zksync-hardhat/LICENSE b/packages/hardhat/zksync-hardhat/LICENSE new file mode 100644 index 00000000..7fff3d4e --- /dev/null +++ b/packages/hardhat/zksync-hardhat/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Matter Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/hardhat/zksync-hardhat/README.md b/packages/hardhat/zksync-hardhat/README.md new file mode 100644 index 00000000..862dae04 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/README.md @@ -0,0 +1,51 @@ +# zkSync Hardhat project template + +This project was scaffolded with [zksync-cli](https://github.com/matter-labs/zksync-cli). + +## Project Layout + +- `/contracts`: Contains solidity smart contracts. +- `/deploy`: Scripts for contract deployment and interaction. +- `/test`: Test files. +- `hardhat.config.ts`: Configuration settings. + +## How to Use + +- `npm run compile`: Compiles contracts. +- `npm run deploy`: Deploys using script `/deploy/deploy.ts`. +- `npm run interact`: Interacts with the deployed contract using `/deploy/interact.ts`. +- `npm run test`: Tests the contracts. + +Note: Both `npm run deploy` and `npm run interact` are set in the `package.json`. You can also run your files directly, for example: `npx hardhat deploy-zksync --script deploy.ts` + +### Environment Settings + +To keep private keys safe, this project pulls in environment variables from `.env` files. Primarily, it fetches the wallet's private key. + +Rename `.env.example` to `.env` and fill in your private key: + +``` +WALLET_PRIVATE_KEY=your_private_key_here... +``` + +### Network Support + +`hardhat.config.ts` comes with a list of networks to deploy and test contracts. Add more by adjusting the `networks` section in the `hardhat.config.ts`. To make a network the default, set the `defaultNetwork` to its name. You can also override the default using the `--network` option, like: `hardhat test --network dockerizedNode`. + +### Local Tests + +Running `npm run test` by default runs the [zkSync In-memory Node](https://era.zksync.io/docs/tools/testing/era-test-node.html) provided by the [@matterlabs/hardhat-zksync-node](https://era.zksync.io/docs/tools/hardhat/hardhat-zksync-node.html) tool. + +Important: zkSync In-memory Node currently supports only the L2 node. If contracts also need L1, use another testing environment like Dockerized Node. Refer to [test documentation](https://era.zksync.io/docs/tools/testing/) for details. + +## Useful Links + +- [Docs](https://era.zksync.io/docs/dev/) +- [Official Site](https://zksync.io/) +- [GitHub](https://github.com/matter-labs) +- [Twitter](https://twitter.com/zksync) +- [Discord](https://join.zksync.dev/) + +## License + +This project is under the [MIT](./LICENSE) license. \ No newline at end of file diff --git a/packages/hardhat/zksync-hardhat/contracts/Greeter.sol b/packages/hardhat/zksync-hardhat/contracts/Greeter.sol new file mode 100644 index 00000000..5496798f --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/Greeter.sol @@ -0,0 +1,18 @@ +//SPDX-License-Identifier: Unlicense +pragma solidity ^0.8.0; + +contract Greeter { + string private greeting; + + constructor(string memory _greeting) { + greeting = _greeting; + } + + function greet() public view returns (string memory) { + return greeting; + } + + function setGreeting(string memory _greeting) public { + greeting = _greeting; + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/erc20/MyERC20Token.sol b/packages/hardhat/zksync-hardhat/contracts/erc20/MyERC20Token.sol new file mode 100644 index 00000000..b97dfc0d --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/erc20/MyERC20Token.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; + +/** + * @title MyERC20Token + * @dev This is a basic ERC20 token using the OpenZeppelin's ERC20PresetFixedSupply preset. + * You can edit the default values as needed. + */ +contract MyERC20Token is ERC20Burnable { + + /** + * @dev Constructor to initialize the token with default values. + * You can edit these values as needed. + */ + constructor() ERC20("DefaultTokenName", "DTN") { + // Default initial supply of 1 million tokens (with 18 decimals) + uint256 initialSupply = 1_000_000 * (10 ** 18); + + // The initial supply is minted to the deployer's address + _mint(msg.sender, initialSupply); + } + + // Additional functions or overrides can be added here if needed. +} diff --git a/packages/hardhat/zksync-hardhat/contracts/nft/MyNFT.sol b/packages/hardhat/zksync-hardhat/contracts/nft/MyNFT.sol new file mode 100644 index 00000000..654dc45b --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/nft/MyNFT.sol @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/utils/Counters.sol"; + +/** + * @title MyNFT + * @dev Basic ERC721 token with auto-incrementing token IDs. + * The owner can mint new tokens. Token URIs are autogenerated based on a base URI. + */ +contract MyNFT is ERC721Enumerable, Ownable { + using Counters for Counters.Counter; + Counters.Counter private _tokenIdTracker; + string private _baseTokenURI; + + constructor(string memory name, string memory symbol, string memory baseTokenURI) ERC721(name, symbol) { + _baseTokenURI = baseTokenURI; + } + + function _baseURI() internal view virtual override returns (string memory) { + return _baseTokenURI; + } + + /** + * @dev Mints a new token to the specified address. + * Only the owner can mint new tokens. + * @param to The address that will receive the minted token. + */ + function mint(address to) external onlyOwner { + _tokenIdTracker.increment(); + _mint(to, _tokenIdTracker.current()); + } + + + // Additional functions or overrides can be added here if needed. +} diff --git a/packages/hardhat/zksync-hardhat/contracts/paymasters/ApprovalPaymaster.sol b/packages/hardhat/zksync-hardhat/contracts/paymasters/ApprovalPaymaster.sol new file mode 100644 index 00000000..9b4ddf01 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/paymasters/ApprovalPaymaster.sol @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IPaymaster, ExecutionResult, PAYMASTER_VALIDATION_SUCCESS_MAGIC} from "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol"; +import {IPaymasterFlow} from "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol"; +import {TransactionHelper, Transaction} from "@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol"; + +import "@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol"; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; + +/// @author Matter Labs +/// @notice This smart contract pays the gas fees for accounts with balance of a specific ERC20 token. It makes use of the approval-based flow paymaster. +contract ApprovalPaymaster is IPaymaster, Ownable { + uint256 constant PRICE_FOR_PAYING_FEES = 1; + + address public allowedToken; + + modifier onlyBootloader() { + require( + msg.sender == BOOTLOADER_FORMAL_ADDRESS, + "Only bootloader can call this method" + ); + // Continue execution if called from the bootloader. + _; + } + + constructor(address _erc20) { + allowedToken = _erc20; + } + + function validateAndPayForPaymasterTransaction( + bytes32, + bytes32, + Transaction calldata _transaction + ) + external + payable + onlyBootloader + returns (bytes4 magic, bytes memory context) + { + // By default we consider the transaction as accepted. + magic = PAYMASTER_VALIDATION_SUCCESS_MAGIC; + require( + _transaction.paymasterInput.length >= 4, + "The standard paymaster input must be at least 4 bytes long" + ); + + bytes4 paymasterInputSelector = bytes4( + _transaction.paymasterInput[0:4] + ); + // Approval based flow + if (paymasterInputSelector == IPaymasterFlow.approvalBased.selector) { + // While the transaction data consists of address, uint256 and bytes data, + // the data is not needed for this paymaster + (address token, uint256 amount, bytes memory data) = abi.decode( + _transaction.paymasterInput[4:], + (address, uint256, bytes) + ); + + // Verify if token is the correct one + require(token == allowedToken, "Invalid token"); + + // We verify that the user has provided enough allowance + address userAddress = address(uint160(_transaction.from)); + + address thisAddress = address(this); + + uint256 providedAllowance = IERC20(token).allowance( + userAddress, + thisAddress + ); + require( + providedAllowance >= PRICE_FOR_PAYING_FEES, + "Min allowance too low" + ); + + // Note, that while the minimal amount of ETH needed is tx.gasPrice * tx.gasLimit, + // neither paymaster nor account are allowed to access this context variable. + uint256 requiredETH = _transaction.gasLimit * + _transaction.maxFeePerGas; + + try + IERC20(token).transferFrom(userAddress, thisAddress, amount) + {} catch (bytes memory revertReason) { + // If the revert reason is empty or represented by just a function selector, + // we replace the error with a more user-friendly message + if (revertReason.length <= 4) { + revert("Failed to transferFrom from users' account"); + } else { + assembly { + revert(add(0x20, revertReason), mload(revertReason)) + } + } + } + + // The bootloader never returns any data, so it can safely be ignored here. + (bool success, ) = payable(BOOTLOADER_FORMAL_ADDRESS).call{ + value: requiredETH + }(""); + require( + success, + "Failed to transfer tx fee to the bootloader. Paymaster balance might not be enough." + ); + } else { + revert("Unsupported paymaster flow"); + } + } + + function postTransaction( + bytes calldata _context, + Transaction calldata _transaction, + bytes32, + bytes32, + ExecutionResult _txResult, + uint256 _maxRefundedGas + ) external payable override onlyBootloader {} + + function withdraw(address _to) external onlyOwner { + (bool success, ) = payable(_to).call{value: address(this).balance}(""); + require(success, "Failed to withdraw funds from paymaster."); + } + + receive() external payable {} +} diff --git a/packages/hardhat/zksync-hardhat/contracts/paymasters/GeneralPaymaster.sol b/packages/hardhat/zksync-hardhat/contracts/paymasters/GeneralPaymaster.sol new file mode 100644 index 00000000..b261187b --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/paymasters/GeneralPaymaster.sol @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IPaymaster, ExecutionResult, PAYMASTER_VALIDATION_SUCCESS_MAGIC} from "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol"; +import {IPaymasterFlow} from "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol"; +import {TransactionHelper, Transaction} from "@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol"; + +import "@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol"; + +import "@openzeppelin/contracts/access/Ownable.sol"; + +/// @author Matter Labs +/// @notice This contract does not include any validations other than using the paymaster general flow. +contract GeneralPaymaster is IPaymaster, Ownable { + modifier onlyBootloader() { + require( + msg.sender == BOOTLOADER_FORMAL_ADDRESS, + "Only bootloader can call this method" + ); + // Continue execution if called from the bootloader. + _; + } + + function validateAndPayForPaymasterTransaction( + bytes32, + bytes32, + Transaction calldata _transaction + ) + external + payable + onlyBootloader + returns (bytes4 magic, bytes memory context) + { + // By default we consider the transaction as accepted. + magic = PAYMASTER_VALIDATION_SUCCESS_MAGIC; + require( + _transaction.paymasterInput.length >= 4, + "The standard paymaster input must be at least 4 bytes long" + ); + + bytes4 paymasterInputSelector = bytes4( + _transaction.paymasterInput[0:4] + ); + if (paymasterInputSelector == IPaymasterFlow.general.selector) { + // Note, that while the minimal amount of ETH needed is tx.gasPrice * tx.gasLimit, + // neither paymaster nor account are allowed to access this context variable. + uint256 requiredETH = _transaction.gasLimit * + _transaction.maxFeePerGas; + + // The bootloader never returns any data, so it can safely be ignored here. + (bool success, ) = payable(BOOTLOADER_FORMAL_ADDRESS).call{ + value: requiredETH + }(""); + require( + success, + "Failed to transfer tx fee to the Bootloader. Paymaster balance might not be enough." + ); + } else { + revert("Unsupported paymaster flow in paymasterParams."); + } + } + + function postTransaction( + bytes calldata _context, + Transaction calldata _transaction, + bytes32, + bytes32, + ExecutionResult _txResult, + uint256 _maxRefundedGas + ) external payable override onlyBootloader {} + + function withdraw(address payable _to) external onlyOwner { + uint256 balance = address(this).balance; + (bool success, ) = _to.call{value: balance}(""); + require(success, "Failed to withdraw funds from paymaster."); + } + + receive() external payable {} +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/BasicDistributor.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/BasicDistributor.sol new file mode 100644 index 00000000..1e806a07 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/BasicDistributor.sol @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import { AdvancedDistributor, IERC20 } from "../claim/abstract/AdvancedDistributor.sol"; + +contract BasicDistributor is AdvancedDistributor { + // The practical limit for this distributor is gas: distributing to 250 addresses costs about 7,000,000 gas! + constructor( + IERC20 _token, // the purchased token + uint256 _total, // total claimable + string memory _uri, // information on the sale (e.g. merkle proofs) + uint256 _voteFactor, // voting power multiplier as fraction of fractionDenominator + address[] memory _recipients, + uint256[] memory _amounts + ) AdvancedDistributor(_token, _total, _uri, _voteFactor, 10000, 0, uint160(uint256(blockhash(block.number - 1)))) { + require(_recipients.length == _amounts.length, "_recipients, _amounts different lengths"); + uint256 _t; + for (uint256 i = _recipients.length; i != 0; ) { + unchecked { + --i; + } + + _initializeDistributionRecord(_recipients[i], _amounts[i]); + _t += _amounts[i]; + } + require(_total == _t, "sum(_amounts) != _total"); + } + + function getVestedFraction( + address, /*beneficiary*/ + uint256 /*time*/ + ) public view override returns (uint256) { + // all tokens vest immediately + return fractionDenominator; + } + + function NAME() external pure virtual override returns (string memory) { + return "BasicDistributor"; + } + + function VERSION() external pure virtual override returns (uint256) { + return 5; + } + + function claim(address beneficiary) external nonReentrant { + // effects + uint256 claimedAmount = super._executeClaim(beneficiary, records[beneficiary].total); + // interactions + super._settleClaim(beneficiary, claimedAmount); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/ContinuousVestingMerkle.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/ContinuousVestingMerkle.sol new file mode 100644 index 00000000..10cc6cdc --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/ContinuousVestingMerkle.sol @@ -0,0 +1,74 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; + +import { ContinuousVesting } from './abstract/ContinuousVesting.sol'; +import { MerkleSet } from './abstract/MerkleSet.sol'; + +contract ContinuousVestingMerkle is ContinuousVesting, MerkleSet { + constructor( + IERC20 _token, // the token being claimed + uint256 _total, // the total claimable by all users + string memory _uri, // information on the sale (e.g. merkle proofs) + uint256 _voteFactor, // votes have this weight + uint256 _start, // vesting clock starts at this time + uint256 _cliff, // claims open at this time + uint256 _end, // vesting clock ends and this time + bytes32 _merkleRoot, // the merkle root for claim membership (also used as salt for the fair queue delay time), + uint160 _maxDelayTime // the maximum delay time for the fair queue + ) + ContinuousVesting( + _token, + _total, + _uri, + _voteFactor, + _start, + _cliff, + _end, + _maxDelayTime, + uint160(uint256(_merkleRoot)) + ) + MerkleSet(_merkleRoot) + {} + + function NAME() external pure override returns (string memory) { + return 'ContinuousVestingMerkle'; + } + + function VERSION() external pure override returns (uint256) { + return 3; + } + + function initializeDistributionRecord( + uint256 index, // the beneficiary's index in the merkle root + address beneficiary, // the address that will receive tokens + uint256 amount, // the total claimable by this beneficiary + bytes32[] calldata merkleProof + ) + external + validMerkleProof(keccak256(abi.encodePacked(index, beneficiary, amount)), merkleProof) + { + _initializeDistributionRecord(beneficiary, amount); + } + + function claim( + uint256 index, // the beneficiary's index in the merkle root + address beneficiary, // the address that will receive tokens + uint256 totalAmount, // the total claimable by this beneficiary + bytes32[] calldata merkleProof + ) + external + validMerkleProof(keccak256(abi.encodePacked(index, beneficiary, totalAmount)), merkleProof) + nonReentrant + { + // effects + uint256 claimedAmount = super._executeClaim(beneficiary, totalAmount); + // interactions + super._settleClaim(beneficiary, claimedAmount); + } + + function setMerkleRoot(bytes32 _merkleRoot) external onlyOwner { + _setMerkleRoot(_merkleRoot); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/PriceTierVestingMerkle.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/PriceTierVestingMerkle.sol new file mode 100644 index 00000000..62eee3ff --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/PriceTierVestingMerkle.sol @@ -0,0 +1,80 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { IERC20 } from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; + +import { PriceTierVesting, PriceTier } from './abstract/PriceTierVesting.sol'; +import { MerkleSet } from './abstract/MerkleSet.sol'; +import "../interfaces/IOracleOrL2OracleWithSequencerCheck.sol"; + +contract PriceTierVestingMerkle is PriceTierVesting, MerkleSet { + constructor( + IERC20 _token, + uint256 _total, + string memory _uri, // information on the sale (e.g. merkle proofs) + uint256 _voteFactor, + // when price tier vesting opens (seconds past epoch) + uint256 _start, + // when price tier vesting ends (seconds past epoch) and all tokens are unlocked + uint256 _end, + // source for pricing info + IOracleOrL2OracleWithSequencerCheck _oracle, + PriceTier[] memory _priceTiers, + bytes32 _merkleRoot, + uint160 _maxDelayTime // the maximum delay time for the fair queue + ) + PriceTierVesting( + _token, + _total, + _uri, + _voteFactor, + _start, + _end, + _oracle, + _priceTiers, + _maxDelayTime, + uint160(uint256(_merkleRoot)) + ) + MerkleSet(_merkleRoot) + {} + + function NAME() external pure override returns (string memory) { + return 'PriceTierVestingMerkle'; + } + + function VERSION() external pure override returns (uint256) { + return 3; + } + + function initializeDistributionRecord( + uint256 index, // the beneficiary's index in the merkle root + address beneficiary, // the address that will receive tokens + uint256 amount, // the total claimable by this beneficiary + bytes32[] calldata merkleProof + ) + external + validMerkleProof(keccak256(abi.encodePacked(index, beneficiary, amount)), merkleProof) + { + _initializeDistributionRecord(beneficiary, amount); + } + + function claim( + uint256 index, // the beneficiary's index in the merkle root + address beneficiary, // the address that will receive tokens + uint256 totalAmount, // the total claimable by this beneficiary + bytes32[] calldata merkleProof + ) + external + validMerkleProof(keccak256(abi.encodePacked(index, beneficiary, totalAmount)), merkleProof) + nonReentrant + { + // effects + uint256 claimedAmount = _executeClaim(beneficiary, totalAmount); + // interactions + _settleClaim(beneficiary, claimedAmount); + } + + function setMerkleRoot(bytes32 _merkleRoot) external onlyOwner { + _setMerkleRoot(_merkleRoot); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/TrancheVestingMerkle.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/TrancheVestingMerkle.sol new file mode 100644 index 00000000..430f6a53 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/TrancheVestingMerkle.sol @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { IERC20 } from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; + +import { TrancheVesting, Tranche } from './abstract/TrancheVesting.sol'; +import { MerkleSet } from './abstract/MerkleSet.sol'; + +contract TrancheVestingMerkle is TrancheVesting, MerkleSet { + constructor( + IERC20 _token, + uint256 _total, + string memory _uri, // information on the sale (e.g. merkle proofs) + uint256 _voteFactor, + Tranche[] memory _tranches, + bytes32 _merkleRoot, + uint160 _maxDelayTime // the maximum delay time for the fair queue + ) + TrancheVesting( + _token, + _total, + _uri, + _voteFactor, + _tranches, + _maxDelayTime, + uint160(uint256(_merkleRoot)) + ) + MerkleSet(_merkleRoot) + {} + + function NAME() external pure override returns (string memory) { + return 'TrancheVestingMerkle'; + } + + function VERSION() external pure override returns (uint256) { + return 3; + } + + function initializeDistributionRecord( + uint256 index, // the beneficiary's index in the merkle root + address beneficiary, // the address that will receive tokens + uint256 amount, // the total claimable by this beneficiary + bytes32[] calldata merkleProof + ) + external + validMerkleProof(keccak256(abi.encodePacked(index, beneficiary, amount)), merkleProof) + { + _initializeDistributionRecord(beneficiary, amount); + } + + function claim( + uint256 index, // the beneficiary's index in the merkle root + address beneficiary, // the address that will receive tokens + uint256 totalAmount, // the total claimable by this beneficiary + bytes32[] calldata merkleProof + ) + external + validMerkleProof(keccak256(abi.encodePacked(index, beneficiary, totalAmount)), merkleProof) + nonReentrant + { + // effects + uint256 claimedAmount = _executeClaim(beneficiary, totalAmount); + // interactions + _settleClaim(beneficiary, claimedAmount); + } + + function setMerkleRoot(bytes32 _merkleRoot) external onlyOwner { + _setMerkleRoot(_merkleRoot); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/AdvancedDistributor.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/AdvancedDistributor.sol new file mode 100644 index 00000000..b1fd9a17 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/AdvancedDistributor.sol @@ -0,0 +1,208 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import '@openzeppelin/contracts/access/Ownable.sol'; +import { ERC20Votes, ERC20Permit, ERC20 } from '@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol'; +import { SafeERC20 } from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; + +import { Distributor, DistributionRecord, IERC20 } from './Distributor.sol'; +import { IAdjustable } from '../../interfaces/IAdjustable.sol'; +import { IVoting } from '../../interfaces/IVoting.sol'; +import { Sweepable } from '../../utilities/Sweepable.sol'; +import { FairQueue } from '../../utilities/FairQueue.sol'; + +/** + * @title AdvancedDistributor + * @notice Distributes tokens to beneficiaries with voting-while-vesting and administrative controls. + * The contract owner can control these distribution parameters: + * - the merkle root determining all distribution details + * - adjustments to specific distributions + * - the token being distributed + * - the total amount to distribute + * - the metadata URI + * - the voting power of undistributed tokens + * - the recipient of swept funds + * + * This contract also allows owners to perform several other admin functions + * - updating the contract owner + * - sweeping tokens and native currency to a recipient + * + * This contract tracks beneficiary voting power through an internal ERC20Votes token that cannot be transferred. The + * beneficiary must delegate to an address to use this voting power. Their voting power decreases when the token is claimed. + * + * @dev Updates to the contract must follow these constraints: + * - If a merkle root update alters the total token quantity to distribute across all users, also adjust the total value. + * The DistributionRecord for each beneficiary updated in the merkle root will be incorrect until a claim is executed. + * - If the total changes, make sure to add or withdraw tokens being distributed to match the new total. + */ +abstract contract AdvancedDistributor is + Ownable, + Sweepable, + ERC20Votes, + Distributor, + IAdjustable, + IVoting, + FairQueue +{ + using SafeERC20 for IERC20; + + uint256 private voteFactor; + + constructor( + IERC20 _token, + uint256 _total, + string memory _uri, + uint256 _voteFactor, + uint256 _fractionDenominator, + uint160 _maxDelayTime, + uint160 _salt + ) + Distributor(_token, _total, _uri, _fractionDenominator) + ERC20Permit('Internal vote tracker') + ERC20('Internal vote tracker', 'IVT') + Sweepable(payable(msg.sender)) + FairQueue(_maxDelayTime, _salt) + { + voteFactor = _voteFactor; + emit SetVoteFactor(voteFactor); + } + + /** + * convert a token quantity to a vote quantity + */ + function tokensToVotes(uint256 tokenAmount) private view returns (uint256) { + return (tokenAmount * voteFactor) / fractionDenominator; + } + + // Update voting power based on distribution record initialization or claims + function _reconcileVotingPower(address beneficiary) private { + // current potential voting power + uint256 currentVotes = balanceOf(beneficiary); + // correct voting power after initialization, claim, or adjustment + DistributionRecord memory record = records[beneficiary]; + uint256 newVotes = record.claimed >= record.total ? 0 : tokensToVotes(record.total - record.claimed); + + if (currentVotes > newVotes) { + // reduce voting power through ERC20Votes extension + _burn(beneficiary, currentVotes - newVotes); + } else if (currentVotes < newVotes) { + // increase voting power through ERC20Votes extension + _mint(beneficiary, newVotes - currentVotes); + } + } + + function _initializeDistributionRecord( + address beneficiary, + uint256 totalAmount + ) internal virtual override { + super._initializeDistributionRecord(beneficiary, totalAmount); + _reconcileVotingPower(beneficiary); + } + + function _executeClaim( + address beneficiary, + uint256 totalAmount + ) internal virtual override returns (uint256 _claimed) { + _claimed = super._executeClaim(beneficiary, totalAmount); + _reconcileVotingPower(beneficiary); + } + + /** + * @dev Adjust the quantity claimable by a user, overriding the value in the distribution record. + * + * Note: If used in combination with merkle proofs, adjustments to a beneficiary's total could be + * reset by anyone to the value in the merkle leaf at any time. Update the merkle root instead. + * + * Amount is limited to type(uint120).max to allow each DistributionRecord to be packed into a single storage slot. + */ + function adjust(address beneficiary, int256 amount) external onlyOwner { + DistributionRecord memory distributionRecord = records[beneficiary]; + require(distributionRecord.initialized, 'must initialize before adjusting'); + + uint256 diff = uint256(amount > 0 ? amount : -amount); + require(diff < type(uint120).max, 'adjustment > max uint120'); + + if (amount < 0) { + // decreasing claimable tokens + require(total >= diff, 'decrease greater than distributor total'); + require(distributionRecord.total >= diff, 'decrease greater than distributionRecord total'); + total -= diff; + records[beneficiary].total -= uint120(diff); + token.safeTransfer(owner(), diff); + } else { + // increasing claimable tokens + total += diff; + records[beneficiary].total += uint120(diff); + } + _reconcileVotingPower(beneficiary); + emit Adjust(beneficiary, amount); + } + + + function _setToken(IERC20 _token) internal virtual { + require(address(_token) != address(0), 'token is address(0)'); + token = _token; + emit SetToken(token); + } + + // Set the token being distributed + function setToken(IERC20 _token) external virtual onlyOwner { + _setToken(_token); + } + + function _setTotal(uint256 _total) internal virtual { + total = _total; + emit SetTotal(total); + } + + // Set the total to distribute + function setTotal(uint256 _total) external virtual onlyOwner { + _setTotal(_total); + } + + // Set the distributor metadata URI + function setUri(string memory _uri) external onlyOwner { + uri = _uri; + emit SetUri(uri); + } + + // set the recipient of swept funds + function setSweepRecipient(address payable _recipient) external onlyOwner { + _setSweepRecipient(_recipient); + } + + function getTotalVotes() external view returns (uint256) { + // supply of internal token used to track voting power + return totalSupply(); + } + + function getVoteFactor(address) external view returns (uint256) { + return voteFactor; + } + + /** + * @notice Set the voting power of undistributed tokens + * @param _voteFactor The voting power multiplier as a fraction of fractionDenominator + * @dev The vote factor can be any integer. If voteFactor / fractionDenominator == 1, + * one unclaimed token provides one vote. If voteFactor / fractionDenominator == 2, one + * unclaimed token counts as two votes. + */ + function setVoteFactor(uint256 _voteFactor) external onlyOwner { + voteFactor = _voteFactor; + emit SetVoteFactor(voteFactor); + } + + /** + * @dev the internal token used only for tracking voting power cannot be transferred + */ + function _approve(address, address, uint256) internal pure override { + revert('disabled for voting power'); + } + + /** + * @dev the internal token used only f or tracking voting power cannot be transferred + */ + function _transfer(address, address, uint256) internal pure override { + revert('disabled for voting power'); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/ContinuousVesting.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/ContinuousVesting.sol new file mode 100644 index 00000000..4e53abdf --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/ContinuousVesting.sol @@ -0,0 +1,80 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { Distributor, AdvancedDistributor } from "./AdvancedDistributor.sol"; +import { IContinuousVesting } from "../../interfaces/IContinuousVesting.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +abstract contract ContinuousVesting is AdvancedDistributor, IContinuousVesting { + uint256 private start; // time vesting clock begins + uint256 private cliff; // time vesting begins (all tokens vested prior to the cliff are immediately claimable) + uint256 private end; // time vesting clock ends + + constructor( + IERC20 _token, + uint256 _total, + string memory _uri, + uint256 _voteFactor, + uint256 _start, + uint256 _cliff, + uint256 _end, + uint160 _maxDelayTime, + uint160 _salt + ) + // use a large fraction denominator to provide the highest resolution on continuous vesting. + AdvancedDistributor(_token, _total, _uri, _voteFactor, 10**18, _maxDelayTime, _salt) + { + require(_start <= _cliff, "vesting cliff before start"); + require(_cliff <= _end, "vesting end before cliff"); + require(_end <= 4102444800, "vesting ends after 4102444800 (Jan 1 2100)"); + + start = _start; + cliff = _cliff; + end = _end; + + emit SetContinuousVesting(start, cliff, end); + } + + function getVestedFraction( + address beneficiary, + uint256 time // time is in seconds past the epoch (e.g. block.timestamp) + ) public view override returns (uint256) { + uint256 delayedTime = time- getFairDelayTime(beneficiary); + // no tokens are vested + if (delayedTime <= cliff) { + return 0; + } + + // all tokens are vested + if (delayedTime >= end) { + return fractionDenominator; + } + + // some tokens are vested + return (fractionDenominator * (delayedTime - start)) / (end - start); + } + + function getVestingConfig() + external + view + returns ( + uint256, + uint256, + uint256 + ) + { + return (start, cliff, end); + } + + // Adjustable admin functions + function setVestingConfig( + uint256 _start, + uint256 _cliff, + uint256 _end + ) external onlyOwner { + start = _start; + cliff = _cliff; + end = _end; + emit SetContinuousVesting(start, cliff, end); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/CrosschainDistributor.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/CrosschainDistributor.sol new file mode 100644 index 00000000..3f1a5035 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/CrosschainDistributor.sol @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { SafeERC20 } from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; + +import { AdvancedDistributor, IERC20 } from './AdvancedDistributor.sol'; +import { Distributor } from './Distributor.sol'; +import { IConnext } from '../../interfaces/IConnext.sol'; +import { ICrosschain } from '../../interfaces/ICrosschain.sol'; + +abstract contract CrosschainDistributor is AdvancedDistributor, ICrosschain { + using SafeERC20 for IERC20; + + IConnext public immutable connext; + uint32 public immutable domain; + + /** + * @notice Throws if the msg.sender is not connext + */ + modifier onlyConnext() { + require(msg.sender == address(connext), '!connext'); + _; + } + + constructor(IConnext _connext, uint256 _total) { + connext = _connext; + domain = uint32(_connext.domain()); + _allowConnext(_total); + } + + /** + @dev allows Connext to withdraw tokens for cross-chain settlement. Connext may withdraw up to + the remaining quantity of tokens that can be claimed - the allowance must be set for cross-chain claims. + */ + function _allowConnext(uint256 amount) internal { + token.safeApprove(address(connext), 0); + token.safeApprove(address(connext), amount); + } + + /** Reset Connext allowance when total is updated */ + function _setTotal(uint256 _total) internal virtual override onlyOwner { + // effects + super._setTotal(_total); + // interactions + _allowConnext(total - claimed); + } + + /** Reset Connext allowance when token is updated */ + function _setToken(IERC20 _token) internal virtual override nonReentrant onlyOwner { + // interaction before effect! + // decrease allowance on old token + _allowConnext(0); + + // effect + super._setToken(_token); + + // interactions + // increase allowance on new token + _allowConnext(total - claimed); + } + + /** + * @notice Settles claimed tokens to any valid Connext domain. + * @dev permissions are not checked: call only after a valid claim is executed + * @dev assumes connext fees are paid in native assets, not from the claim total + * @param _recipient: the address that will receive tokens + * @param _recipientDomain: the domain of the address that will receive tokens + * @param _amount: the amount of claims to settle + */ + function _settleClaim( + address _beneficiary, + address _recipient, + uint32 _recipientDomain, + uint256 _amount + ) internal virtual { + bytes32 id; + if (_recipientDomain == 0 || _recipientDomain == domain) { + token.safeTransfer(_recipient, _amount); + } else { + id = connext.xcall{value: msg.value}( + _recipientDomain, // destination domain + _recipient, // to + address(token), // asset + _recipient, // delegate, only required for self-execution + slippage + _amount, // amount + 0, // slippage -- assumes no pools on connext + bytes('') // calldata + ); + } + emit CrosschainClaim(id, _beneficiary, _recipient, _recipientDomain, _amount); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/Distributor.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/Distributor.sol new file mode 100644 index 00000000..3ff6d0b0 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/Distributor.sol @@ -0,0 +1,128 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { SafeERC20 } from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; +import { IERC20 } from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import { ReentrancyGuard } from '@openzeppelin/contracts/security/ReentrancyGuard.sol'; + +import { IDistributor, DistributionRecord } from '../../interfaces/IDistributor.sol'; + +/** + * @title Distributor + * @notice Distributes funds to beneficiaries and tracks distribution status + */ +abstract contract Distributor is IDistributor, ReentrancyGuard { + using SafeERC20 for IERC20; + + mapping(address => DistributionRecord) internal records; // track distribution records per user + IERC20 public token; // the token being claimed + uint256 public total; // total tokens allocated for claims + uint256 public claimed; // tokens already claimed + string public uri; // ipfs link on distributor info + uint256 immutable fractionDenominator; // denominator for vesting fraction (e.g. if vested fraction is 100 and fractionDenominator is 10000, 1% of tokens have vested) + + // provide context on the contract name and version + function NAME() external view virtual returns (string memory); + + function VERSION() external view virtual returns (uint256); + + constructor(IERC20 _token, uint256 _total, string memory _uri, uint256 _fractionDenominator) { + require(address(_token) != address(0), 'Distributor: token is address(0)'); + require(_total > 0, 'Distributor: total is 0'); + + token = _token; + total = _total; + uri = _uri; + fractionDenominator = _fractionDenominator; + emit InitializeDistributor(token, total, uri, fractionDenominator); + } + + /** + * @dev Set up the distribution record for a user. Permissions are not checked in this function. + * Amount is limited to type(uint120).max to allow each DistributionRecord to be packed into a single storage slot. + * + * @param beneficiary The address of the beneficiary + * @param _totalAmount The total amount of tokens to be distributed to the beneficiary + */ + function _initializeDistributionRecord( + address beneficiary, + uint256 _totalAmount + ) internal virtual { + + // Checks + require(_totalAmount <= type(uint120).max, 'Distributor: totalAmount > type(uint120).max'); + uint120 totalAmount = uint120(_totalAmount); + + // Effects - note that the existing claimed quantity is re-used during re-initialization + records[beneficiary] = DistributionRecord(true, totalAmount, records[beneficiary].claimed); + emit InitializeDistributionRecord(beneficiary, totalAmount); + } + + /** + * @notice Record the claim internally: + * @dev This function does not check permissions: caller must verify the claim is valid! + * this function should not call any untrusted external contracts to avoid reentrancy + */ + function _executeClaim( + address beneficiary, + uint256 _totalAmount + ) internal virtual returns (uint256) { + uint120 totalAmount = uint120(_totalAmount); + + // effects + if (records[beneficiary].total != totalAmount) { + // re-initialize if the total has been updated + _initializeDistributionRecord(beneficiary, totalAmount); + } + + uint120 claimableAmount = uint120(getClaimableAmount(beneficiary)); + require(claimableAmount > 0, 'Distributor: no more tokens claimable right now'); + + records[beneficiary].claimed += claimableAmount; + claimed += claimableAmount; + + return claimableAmount; + } + + /** + * @dev Move tokens associated with the claim to the recipient. This function should be called + * after the claim has been executed internally to avoid reentrancy issues. + * @param _recipient The address of the recipient + * @param _amount The amount of tokens to be transferred during this claim + */ + function _settleClaim(address _recipient, uint256 _amount) internal virtual { + token.safeTransfer(_recipient, _amount); + emit Claim(_recipient, _amount); + } + + /// @notice return a distribution record + function getDistributionRecord( + address beneficiary + ) external view virtual returns (DistributionRecord memory) { + return records[beneficiary]; + } + + // Get tokens vested as fraction of fractionDenominator + function getVestedFraction( + address beneficiary, + uint256 time + ) public view virtual returns (uint256); + + function getFractionDenominator() public view returns (uint256) { + return fractionDenominator; + } + + // get the number of tokens currently claimable by a specific use + function getClaimableAmount(address beneficiary) public view virtual returns (uint256) { + require(records[beneficiary].initialized, 'Distributor: claim not initialized'); + + DistributionRecord memory record = records[beneficiary]; + + uint256 claimable = (record.total * getVestedFraction(beneficiary, block.timestamp)) / + fractionDenominator; + return + record.claimed >= claimable + ? 0 // no more tokens to claim + : claimable - record.claimed; // claim all available tokens + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/MerkleSet.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/MerkleSet.sol new file mode 100644 index 00000000..f899db00 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/MerkleSet.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import '@openzeppelin/contracts/utils/cryptography/MerkleProof.sol'; +import { IMerkleSet } from '../../interfaces/IMerkleSet.sol'; + +/** + * @title MerkleSet + * @notice Checks merkle proofs + * @dev Contracts inheriting from MerkleSet may update the merkle root whenever desired. + */ +contract MerkleSet is IMerkleSet { + bytes32 private merkleRoot; + + constructor(bytes32 _merkleRoot) { + _setMerkleRoot(_merkleRoot); + } + + modifier validMerkleProof(bytes32 leaf, bytes32[] memory merkleProof) { + _verifyMembership(leaf, merkleProof); + + _; + } + + /** + * @notice Tests membership in the merkle set + */ + function _testMembership( + bytes32 leaf, + bytes32[] memory merkleProof + ) internal view returns (bool) { + return MerkleProof.verify(merkleProof, merkleRoot, leaf); + } + + function getMerkleRoot() public view returns (bytes32) { + return merkleRoot; + } + + /** + * @dev Verifies membership in the merkle set + */ + function _verifyMembership(bytes32 leaf, bytes32[] memory merkleProof) internal view { + require(_testMembership(leaf, merkleProof), 'invalid proof'); + } + + /** + * @dev Updates the merkle root + */ + function _setMerkleRoot(bytes32 _merkleRoot) internal { + merkleRoot = _merkleRoot; + emit SetMerkleRoot(merkleRoot); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/PriceTierVesting.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/PriceTierVesting.sol new file mode 100644 index 00000000..c999a396 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/PriceTierVesting.sol @@ -0,0 +1,140 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { AdvancedDistributor, Distributor, IERC20 } from "./AdvancedDistributor.sol"; +import { IPriceTierVesting, PriceTier } from "../../interfaces/IPriceTierVesting.sol"; +import "../../interfaces/IOracleOrL2OracleWithSequencerCheck.sol"; + +abstract contract PriceTierVesting is AdvancedDistributor, IPriceTierVesting { + PriceTier[] private tiers; + uint256 private start; // time vesting begins + uint256 private end; // time vesting ends (all tokens are claimable) + IOracleOrL2OracleWithSequencerCheck private oracle; // oracle providing prices + + constructor( + IERC20 _token, + uint256 _total, + string memory _uri, // information on the sale (e.g. merkle proofs) + uint256 _voteFactor, + uint256 _start, + uint256 _end, + IOracleOrL2OracleWithSequencerCheck _oracle, + PriceTier[] memory _tiers, + uint160 _maxDelayTime, + uint160 _salt + ) AdvancedDistributor(_token, _total, _uri, _voteFactor, 10000, _maxDelayTime, _salt) { + _setPriceTiers(_start, _end, _oracle, _tiers); + } + + function _getOraclePrice() private view returns (uint256) { + ( + uint80 roundID, + int256 _price, + /* uint256 startedAt */, + uint256 timeStamp, + uint80 answeredInRound + ) = oracle.latestRoundData(); + + require(_price > 0, "negative price"); + require(answeredInRound != 0, "answer == 0"); + require(timeStamp != 0, "round not complete"); + require(answeredInRound >= roundID, "stale price"); + + return uint256(_price); + } + + function getStart() external view override returns (uint256) { + return start; + } + + function getEnd() external view override returns (uint256) { + return end; + } + + function getOracle() external view override returns (IOracleOrL2OracleWithSequencerCheck) { + return oracle; + } + + function getPriceTier(uint256 i) public view returns (PriceTier memory) { + return tiers[i]; + } + + function getPriceTiers() public view returns (PriceTier[] memory) { + return tiers; + } + + function getVestedFraction( + address beneficiary, + uint256 time // time in seconds past epoch + ) public view override returns (uint256) { + // shift this user's time by their fair delay + uint256 delayedTime = time - getFairDelayTime(beneficiary); + + // no tokens are vested + if (delayedTime < start) { + return 0; + } + + // all tokens are vested + if (delayedTime >= end) { + return fractionDenominator; + } + + uint256 price = _getOraclePrice(); + + for (uint256 i = tiers.length; i != 0; ) { + unchecked { + --i; + } + if (price > tiers[i].price) { + return tiers[i].vestedFraction; + } + } + return 0; + } + + function _setPriceTiers( + uint256 _start, + uint256 _end, + IOracleOrL2OracleWithSequencerCheck _oracle, + PriceTier[] memory _tiers + ) private { + require(_tiers.length > 0, "1+ price tiers required"); + + delete tiers; + + uint128 highestPrice = 0; + uint128 highestFraction = 0; + + for (uint256 i = 0; i < _tiers.length; ) { + require(_tiers[i].price > highestPrice, "tier prices decrease"); + require(_tiers[i].vestedFraction > highestFraction, "vested fraction decreases"); + highestPrice = _tiers[i].price; + highestFraction = _tiers[i].vestedFraction; + + tiers.push(_tiers[i]); + + unchecked { + ++i; + } + } + + require(highestFraction == fractionDenominator, "highest price tier must vest all tokens"); + require(address(_oracle) != address(0), "oracle == address(0)"); + + start = _start; + end = _end; + oracle = _oracle; + emit SetPriceTierConfig(start, end, oracle, tiers); + } + + // Adjustable admin functions + function setPriceTiers( + uint256 _start, + uint256 _end, + IOracleOrL2OracleWithSequencerCheck _oracle, + PriceTier[] memory _tiers + ) external onlyOwner { + _setPriceTiers(_start, _end, _oracle, _tiers); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/TrancheVesting.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/TrancheVesting.sol new file mode 100644 index 00000000..0582f402 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/abstract/TrancheVesting.sol @@ -0,0 +1,124 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { AdvancedDistributor } from "./AdvancedDistributor.sol"; +import { ITrancheVesting, Tranche } from "../../interfaces/ITrancheVesting.sol"; +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "hardhat/console.sol"; + +/** + * @title TrancheVesting + * @notice Distributes funds to beneficiaries over time in tranches. + */ +abstract contract TrancheVesting is AdvancedDistributor, ITrancheVesting { + // time and vested fraction must monotonically increase in the tranche array + Tranche[] private tranches; + + constructor( + IERC20 _token, + uint256 _total, + string memory _uri, + uint256 _voteFactor, + Tranche[] memory _tranches, + uint160 _maxDelayTime, + uint160 _salt + ) + AdvancedDistributor( + _token, + _total, + _uri, + _voteFactor, + 10000, + _maxDelayTime, + _salt + ) + { + // tranches can be set in the constructor or in setTranches() + _setTranches(_tranches); + } + + /** + * @notice Get the vested fraction for a beneficiary at a given time. + * @dev Before the first tranche time, the vested fraction will be 0. At times between + * tranche_i and tranche_i+1, the vested fraction will be tranche_i+1's vested fraction. + * After the last tranche time, the vested fraction will be the fraction denominator. + */ + function getVestedFraction( + address beneficiary, + uint256 time + ) public view override returns (uint256) { + uint256 delay = getFairDelayTime(beneficiary); + for (uint256 i = tranches.length; i != 0; ) { + unchecked { + --i; + } + + if (time - delay > tranches[i].time) { + return tranches[i].vestedFraction; + } + } + + return 0; + } + + // Get a single tranche + function getTranche(uint256 i) public view returns (Tranche memory) { + return tranches[i]; + } + + // Get all tranches + function getTranches() public view returns (Tranche[] memory) { + return tranches; + } + + /** + * @dev Tranches can be updated at any time. The quantity of tokens a user can claim is based on the + * claimable quantity at the time of the claim and the quantity of tokens already claimed by the user. + */ + function _setTranches(Tranche[] memory _tranches) private { + require(_tranches.length != 0, "tranches required"); + + delete tranches; + + uint128 lastTime = 0; + uint128 lastVestedFraction = 0; + + for (uint256 i = 0; i < _tranches.length; ) { + require( + _tranches[i].vestedFraction != 0, + "tranche vested fraction == 0" + ); + require(_tranches[i].time > lastTime, "tranche time must increase"); + require( + _tranches[i].vestedFraction > lastVestedFraction, + "tranche vested fraction must increase" + ); + lastTime = _tranches[i].time; + lastVestedFraction = _tranches[i].vestedFraction; + tranches.push(_tranches[i]); + + emit SetTranche(i, lastTime, lastVestedFraction); + + unchecked { + ++i; + } + } + + require( + lastTime <= 4102444800, + "vesting ends after 4102444800 (Jan 1 2100)" + ); + require( + lastVestedFraction == fractionDenominator, + "last tranche must vest all tokens" + ); + } + + /** + * @notice Set the vesting tranches. Tranches must be sorted by time and vested fraction must monotonically increase. + * The last tranche must vest all tokens (vestedFraction == fractionDenominator) + */ + function setTranches(Tranche[] memory _tranches) external onlyOwner { + _setTranches(_tranches); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/AdvancedDistributorInitializable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/AdvancedDistributorInitializable.sol new file mode 100644 index 00000000..8070e63d --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/AdvancedDistributorInitializable.sol @@ -0,0 +1,213 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import {ERC20Votes, ERC20Permit, ERC20} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol"; +import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; + +import {DistributorInitializable, DistributionRecord, IERC20} from "./DistributorInitializable.sol"; +import {IAdjustable} from "../../interfaces/IAdjustable.sol"; +import {IVoting} from "../../interfaces/IVoting.sol"; +import {Sweepable} from "../../utilities/Sweepable.sol"; +import "./FairQueueInitializable.sol"; + +/** + * @title AdvancedDistributor + * @notice Distributes tokens to beneficiaries with voting-while-vesting and administrative controls. + * The contract owner can control these distribution parameters: + * - the merkle root determining all distribution details + * - adjustments to specific distributions + * - the token being distributed + * - the total amount to distribute + * - the metadata URI + * - the voting power of undistributed tokens + * - the recipient of swept funds + * + * This contract also allows owners to perform several other admin functions + * - updating the contract owner + * - sweeping tokens and native currency to a recipient + * + * This contract tracks beneficiary voting power through an internal ERC20Votes token that cannot be transferred. The + * beneficiary must delegate to an address to use this voting power. Their voting power decreases when the token is claimed. + * + * @dev Updates to the contract must follow these constraints: + * - If a merkle root update alters the total token quantity to distribute across all users, also adjust the total value. + * The DistributionRecord for each beneficiary updated in the merkle root will be incorrect until a claim is executed. + * - If the total changes, make sure to add or withdraw tokens being distributed to match the new total. + */ +abstract contract AdvancedDistributorInitializable is + Initializable, + Ownable, + Sweepable, + ERC20Votes, + DistributorInitializable, + IAdjustable, + IVoting, + FairQueueInitializable +{ + using SafeERC20 for IERC20; + + uint256 private voteFactor; + + constructor() + ERC20Permit("Internal vote tracker") + ERC20("Internal vote tracker", "IVT") + Sweepable(payable(msg.sender)) + {} + + function __AdvancedDistributor_init( + IERC20 _token, + uint256 _total, + string memory _uri, + uint256 _voteFactor, + uint256 _fractionDenominator, + uint160 _maxDelayTime, + uint160 _salt, + address _owner + ) internal onlyInitializing { + _setSweepRecipient(payable(_owner)); + voteFactor = _voteFactor; + emit SetVoteFactor(voteFactor); + + __Distributor_init(_token, _total, _uri, _fractionDenominator); + __FairQueue_init(_maxDelayTime, _salt); + } + + /** + * convert a token quantity to a vote quantity + */ + function tokensToVotes(uint256 tokenAmount) private view returns (uint256) { + return (tokenAmount * voteFactor) / fractionDenominator; + } + + // Update voting power based on distribution record initialization or claims + function _reconcileVotingPower(address beneficiary) private { + // current potential voting power + uint256 currentVotes = balanceOf(beneficiary); + // correct voting power after initialization, claim, or adjustment + DistributionRecord memory record = records[beneficiary]; + uint256 newVotes = record.claimed >= record.total ? 0 : tokensToVotes(record.total - record.claimed); + + if (currentVotes > newVotes) { + // reduce voting power through ERC20Votes extension + _burn(beneficiary, currentVotes - newVotes); + } else if (currentVotes < newVotes) { + // increase voting power through ERC20Votes extension + _mint(beneficiary, newVotes - currentVotes); + } + } + + function _initializeDistributionRecord(address beneficiary, uint256 totalAmount) internal virtual override { + super._initializeDistributionRecord(beneficiary, totalAmount); + _reconcileVotingPower(beneficiary); + } + + function _executeClaim(address beneficiary, uint256 totalAmount) + internal + virtual + override + returns (uint256 _claimed) + { + _claimed = super._executeClaim(beneficiary, totalAmount); + _reconcileVotingPower(beneficiary); + } + + /** + * @dev Adjust the quantity claimable by a user, overriding the value in the distribution record. + * + * Note: If used in combination with merkle proofs, adjustments to a beneficiary's total could be + * reset by anyone to the value in the merkle leaf at any time. Update the merkle root instead. + * + * Amount is limited to type(uint120).max to allow each DistributionRecord to be packed into a single storage slot. + */ + function adjust(address beneficiary, int256 amount) external onlyOwner { + DistributionRecord memory distributionRecord = records[beneficiary]; + require(distributionRecord.initialized, "must initialize before adjusting"); + + uint256 diff = uint256(amount > 0 ? amount : -amount); + require(diff < type(uint120).max, "adjustment > max uint120"); + + if (amount < 0) { + // decreasing claimable tokens + require(total >= diff, "decrease greater than distributor total"); + require(distributionRecord.total >= diff, "decrease greater than distributionRecord total"); + total -= diff; + records[beneficiary].total -= uint120(diff); + token.safeTransfer(owner(), diff); + } else { + // increasing claimable tokens + total += diff; + records[beneficiary].total += uint120(diff); + } + _reconcileVotingPower(beneficiary); + emit Adjust(beneficiary, amount); + } + + function _setToken(IERC20 _token) internal virtual { + require(address(_token) != address(0), "token is address(0)"); + token = _token; + emit SetToken(token); + } + + // Set the token being distributed + function setToken(IERC20 _token) external virtual onlyOwner { + _setToken(_token); + } + + function _setTotal(uint256 _total) internal virtual { + total = _total; + emit SetTotal(total); + } + + // Set the total to distribute + function setTotal(uint256 _total) external virtual onlyOwner { + _setTotal(_total); + } + + // Set the distributor metadata URI + function setUri(string memory _uri) external onlyOwner { + uri = _uri; + emit SetUri(uri); + } + + // set the recipient of swept funds + function setSweepRecipient(address payable _recipient) external onlyOwner { + _setSweepRecipient(_recipient); + } + + function getTotalVotes() external view returns (uint256) { + // supply of internal token used to track voting power + return totalSupply(); + } + + function getVoteFactor(address) external view returns (uint256) { + return voteFactor; + } + + /** + * @notice Set the voting power of undistributed tokens + * @param _voteFactor The voting power multiplier as a fraction of fractionDenominator + * @dev The vote factor can be any integer. If voteFactor / fractionDenominator == 1, + * one unclaimed token provides one vote. If voteFactor / fractionDenominator == 2, one + * unclaimed token counts as two votes. + */ + function setVoteFactor(uint256 _voteFactor) external onlyOwner { + voteFactor = _voteFactor; + emit SetVoteFactor(voteFactor); + } + + /** + * @dev the internal token used only for tracking voting power cannot be transferred + */ + function _approve(address, address, uint256) internal pure override { + revert("disabled for voting power"); + } + + /** + * @dev the internal token used only for tracking voting power cannot be transferred + */ + function _transfer(address, address, uint256) internal pure override { + revert("disabled for voting power"); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingInitializable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingInitializable.sol new file mode 100644 index 00000000..ab940899 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingInitializable.sol @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +import "./AdvancedDistributorInitializable.sol"; +import {IContinuousVesting} from "../../interfaces/IContinuousVesting.sol"; + +abstract contract ContinuousVestingInitializable is Initializable, AdvancedDistributorInitializable, IContinuousVesting { + uint256 private start; // time vesting clock begins + uint256 private cliff; // time vesting begins (all tokens vested prior to the cliff are immediately claimable) + uint256 private end; // time vesting clock ends + + function __ContinuousVesting_init( + IERC20 _token, + uint256 _total, + string memory _uri, + uint256 _start, + uint256 _cliff, + uint256 _end, + uint160 _maxDelayTime, + uint160 _salt, + address _owner + ) internal onlyInitializing { + __AdvancedDistributor_init( + _token, + _total, + _uri, + 10000, // 1x voting power + 10 ** 18, // provides the highest resolution possible for continuous vesting + _maxDelayTime, + _salt, + _owner + ); + require(_start <= _cliff, "vesting cliff before start"); + require(_cliff <= _end, "vesting end before cliff"); + require(_end <= 4102444800, "vesting ends after 4102444800 (Jan 1 2100)"); + + start = _start; + cliff = _cliff; + end = _end; + + emit SetContinuousVesting(start, cliff, end); + } + + function getVestedFraction( + address beneficiary, + uint256 time // time is in seconds past the epoch (e.g. block.timestamp) + ) public view override returns (uint256) { + uint256 delayedTime = time - getFairDelayTime(beneficiary); + // no tokens are vested + if (delayedTime <= cliff) { + return 0; + } + + // all tokens are vested + if (delayedTime >= end) { + return fractionDenominator; + } + + // some tokens are vested + return (fractionDenominator * (delayedTime - start)) / (end - start); + } + + function getVestingConfig() external view returns (uint256, uint256, uint256) { + return (start, cliff, end); + } + + // Adjustable admin functions + function setVestingConfig(uint256 _start, uint256 _cliff, uint256 _end) external onlyOwner { + start = _start; + cliff = _cliff; + end = _end; + emit SetContinuousVesting(start, cliff, end); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol new file mode 100644 index 00000000..632e4a62 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +import "./ContinuousVestingInitializable.sol"; +import "./MerkleSetInitializable.sol"; + +contract ContinuousVestingMerkleDistributor is Initializable, ContinuousVestingInitializable, MerkleSetInitializable { + constructor() { + _disableInitializers(); + } + + function initialize( + IERC20 _token, // the token being claimed + uint256 _total, // the total claimable by all users + string memory _uri, // information on the sale (e.g. merkle proofs) + uint256 _start, // vesting clock starts at this time + uint256 _cliff, // claims open at this time + uint256 _end, // vesting clock ends and this time + bytes32 _merkleRoot, // the merkle root for claim membership (also used as salt for the fair queue delay time), + uint160 _maxDelayTime, // the maximum delay time for the fair queue + address _owner + ) public initializer { + __ContinuousVesting_init( + _token, _total, _uri, _start, _cliff, _end, _maxDelayTime, uint160(uint256(_merkleRoot)), _owner + ); + + __MerkleSet_init(_merkleRoot); + + _transferOwnership(_owner); + } + + function NAME() external pure override returns (string memory) { + return "ContinuousVestingMerkleInitializable"; + } + + function VERSION() external pure override returns (uint256) { + return 3; + } + + function initializeDistributionRecord( + uint256 index, // the beneficiary's index in the merkle root + address beneficiary, // the address that will receive tokens + uint256 amount, // the total claimable by this beneficiary + bytes32[] calldata merkleProof + ) external validMerkleProof(keccak256(abi.encodePacked(index, beneficiary, amount)), merkleProof) { + _initializeDistributionRecord(beneficiary, amount); + } + + function claim( + uint256 index, // the beneficiary's index in the merkle root + address beneficiary, // the address that will receive tokens + uint256 totalAmount, // the total claimable by this beneficiary + bytes32[] calldata merkleProof + ) + external + validMerkleProof(keccak256(abi.encodePacked(index, beneficiary, totalAmount)), merkleProof) + nonReentrant + { + // effects + uint256 claimedAmount = super._executeClaim(beneficiary, totalAmount); + // interactions + _settleClaim(beneficiary, claimedAmount); + } + + function setMerkleRoot(bytes32 _merkleRoot) external onlyOwner { + _setMerkleRoot(_merkleRoot); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol new file mode 100644 index 00000000..d97a4050 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol @@ -0,0 +1,112 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; + +import {ContinuousVestingMerkleDistributor} from "./ContinuousVestingMerkleDistributor.sol"; + +contract ContinuousVestingMerkleDistributorFactory { + address private immutable i_implementation; + address[] public distributors; + + event DistributorDeployed(address indexed distributor); + + constructor(address implementation) { + i_implementation = implementation; + } + + function _getSalt( + IERC20 _token, // the token being claimed + uint256 _total, // the total claimable by all users + string memory _uri, // information on the sale (e.g. merkle proofs) + uint256 _start, // vesting clock starts at this time + uint256 _cliff, // claims open at this time + uint256 _end, // vesting clock ends and this time + bytes32 _merkleRoot, // the merkle root for claim membership (also used as salt for the fair queue delay time), + uint160 _maxDelayTime, // the maximum delay time for the fair queue + address _owner, + uint256 _nonce + ) private pure returns (bytes32) { + return keccak256(abi.encode( + _token, + _total, + _uri, + _start, + _cliff, + _end, + _merkleRoot, + _maxDelayTime, + _owner, + _nonce + )); + } + + function deployDistributor( + IERC20 _token, // the token being claimed + uint256 _total, // the total claimable by all users + string memory _uri, // information on the sale (e.g. merkle proofs) + uint256 _start, // vesting clock starts at this time + uint256 _cliff, // claims open at this time + uint256 _end, // vesting clock ends and this time + bytes32 _merkleRoot, // the merkle root for claim membership (also used as salt for the fair queue delay time), + uint160 _maxDelayTime, // the maximum delay time for the fair queue + address _owner, + uint256 _nonce + ) public returns (ContinuousVestingMerkleDistributor distributor) { + bytes32 salt = _getSalt( + _token, + _total, + _uri, + _start, + _cliff, + _end, + _merkleRoot, + _maxDelayTime, + _owner, + _nonce + ); + + distributor = + ContinuousVestingMerkleDistributor(Clones.cloneDeterministic(i_implementation, salt)); + distributors.push(address(distributor)); + + emit DistributorDeployed(address(distributor)); + + distributor.initialize(_token, _total, _uri, _start, _cliff, _end, _merkleRoot, _maxDelayTime, _owner); + + return distributor; + } + + function getImplementation() public view returns (address) { + return i_implementation; + } + + function predictDistributorAddress( + IERC20 _token, // the token being claimed + uint256 _total, // the total claimable by all users + string memory _uri, // information on the sale (e.g. merkle proofs) + uint256 _start, // vesting clock starts at this time + uint256 _cliff, // claims open at this time + uint256 _end, // vesting clock ends and this time + bytes32 _merkleRoot, // the merkle root for claim membership (also used as salt for the fair queue delay time), + uint160 _maxDelayTime, // the maximum delay time for the fair queue + address _owner, + uint256 _nonce + ) public view returns (address) { + bytes32 salt = _getSalt( + _token, + _total, + _uri, + _start, + _cliff, + _end, + _merkleRoot, + _maxDelayTime, + _owner, + _nonce + ); + + return Clones.predictDeterministicAddress(i_implementation, salt, address(this)); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/DistributorInitializable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/DistributorInitializable.sol new file mode 100644 index 00000000..af50f3ea --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/DistributorInitializable.sol @@ -0,0 +1,118 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {ReentrancyGuard} from "@openzeppelin/contracts/security/ReentrancyGuard.sol"; + +import {IDistributor, DistributionRecord} from "../../interfaces/IDistributor.sol"; + +/** + * @title Distributor + * @notice Distributes funds to beneficiaries and tracks distribution status + */ +abstract contract DistributorInitializable is Initializable, IDistributor, ReentrancyGuard { + using SafeERC20 for IERC20; + + mapping(address => DistributionRecord) internal records; // track distribution records per user + IERC20 public token; // the token being claimed + uint256 public total; // total tokens allocated for claims + uint256 public claimed; // tokens already claimed + string public uri; // ipfs link on distributor info + uint256 internal fractionDenominator; // denominator for vesting fraction (e.g. if vested fraction is 100 and fractionDenominator is 10000, 1% of tokens have vested) + + // provide context on the contract name and version + function NAME() external view virtual returns (string memory); + + function VERSION() external view virtual returns (uint256); + + function __Distributor_init(IERC20 _token, uint256 _total, string memory _uri, uint256 _fractionDenominator) + internal + onlyInitializing + { + require(address(_token) != address(0), "Distributor: token is address(0)"); + require(_total > 0, "Distributor: total is 0"); + + token = _token; + total = _total; + uri = _uri; + fractionDenominator = _fractionDenominator; + emit InitializeDistributor(token, total, uri, fractionDenominator); + } + + /** + * @dev Set up the distribution record for a user. Permissions are not checked in this function. + * Amount is limited to type(uint120).max to allow each DistributionRecord to be packed into a single storage slot. + * + * @param beneficiary The address of the beneficiary + * @param _totalAmount The total amount of tokens to be distributed to the beneficiary + */ + function _initializeDistributionRecord(address beneficiary, uint256 _totalAmount) internal virtual { + // Checks + require(_totalAmount <= type(uint120).max, "Distributor: totalAmount > type(uint120).max"); + uint120 totalAmount = uint120(_totalAmount); + + // Effects - note that the existing claimed quantity is re-used during re-initialization + records[beneficiary] = DistributionRecord(true, totalAmount, records[beneficiary].claimed); + emit InitializeDistributionRecord(beneficiary, totalAmount); + } + + /** + * @notice Record the claim internally: + * @dev This function does not check permissions: caller must verify the claim is valid! + * this function should not call any untrusted external contracts to avoid reentrancy + */ + function _executeClaim(address beneficiary, uint256 _totalAmount) internal virtual returns (uint256) { + uint120 totalAmount = uint120(_totalAmount); + + // effects + if (records[beneficiary].total != totalAmount) { + // re-initialize if the total has been updated + _initializeDistributionRecord(beneficiary, totalAmount); + } + + uint120 claimableAmount = uint120(getClaimableAmount(beneficiary)); + require(claimableAmount > 0, "Distributor: no more tokens claimable right now"); + + records[beneficiary].claimed += claimableAmount; + claimed += claimableAmount; + + return claimableAmount; + } + + /** + * @dev Move tokens associated with the claim to the recipient. This function should be called + * after the claim has been executed internally to avoid reentrancy issues. + * @param _recipient The address of the recipient + * @param _amount The amount of tokens to be transferred during this claim + */ + function _settleClaim(address _recipient, uint256 _amount) internal virtual { + token.safeTransfer(_recipient, _amount); + emit Claim(_recipient, _amount); + } + + /// @notice return a distribution record + function getDistributionRecord(address beneficiary) external view virtual returns (DistributionRecord memory) { + return records[beneficiary]; + } + + // Get tokens vested as fraction of fractionDenominator + function getVestedFraction(address beneficiary, uint256 time) public view virtual returns (uint256); + + function getFractionDenominator() public view returns (uint256) { + return fractionDenominator; + } + + // get the number of tokens currently claimable by a specific use + function getClaimableAmount(address beneficiary) public view virtual returns (uint256) { + require(records[beneficiary].initialized, "Distributor: claim not initialized"); + + DistributionRecord memory record = records[beneficiary]; + + uint256 claimable = (record.total * getVestedFraction(beneficiary, block.timestamp)) / fractionDenominator; + return record.claimed >= claimable + ? 0 // no more tokens to claim + : claimable - record.claimed; // claim all available tokens + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/FairQueueInitializable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/FairQueueInitializable.sol new file mode 100644 index 00000000..66be9fee --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/FairQueueInitializable.sol @@ -0,0 +1,81 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; + +/** + * @title FairQueue + * @notice Fairly assigns a delay time to each address from a uniform distribution over [0, maxDelayTime] + * @dev The delay is determined by calculating a distance between the user's address and a pseudorandom value based on a provided salt and a blockhash + * using the XOR distance metric. Do not use this contract if the event is public because users could grind addresses until they find one with a low delay. + */ +contract FairQueueInitializable is Initializable { + event SetDelay(uint160 maxDelayTime); + /** + * calculate a speed at which the queue is exhausted such that all users complete the queue by maxDelayTime + */ + + uint160 public distancePerSecond; + uint160 public maxDelayTime; + + /** + * @dev the random value from which a distance will be calculated for each address. Reset the random value + * to shuffle the delays for all addresses. + */ + uint160 public randomValue; + + function __FairQueue_init(uint160 _maxDelayTime, uint160 salt) internal onlyInitializing { + _setDelay(_maxDelayTime); + _setPseudorandomValue(salt); + } + + /** + * @dev internal function to set the random value. A salt (e.g. from a merkle root) is required to prevent + * naive manipulation of the random value by validators + */ + function _setPseudorandomValue(uint160 salt) internal { + if (distancePerSecond == 0) { + // there is no delay: random value is not needed + return; + } + require(salt > 0, "I demand more randomness"); + randomValue = uint160(uint256(blockhash(block.number - 1))) ^ salt; + } + + /** + * @dev Internal function to configure delay + * @param _maxDelayTime the maximum delay for any address in seconds. Set this value to 0 to disable delays entirely. + */ + function _setDelay(uint160 _maxDelayTime) internal { + maxDelayTime = _maxDelayTime; + distancePerSecond = _maxDelayTime > 0 ? type(uint160).max / _maxDelayTime : 0; + emit SetDelay(_maxDelayTime); + } + + /** + * @notice get a fixed delay for any address by drawing from a unform distribution over the interval [0, maxDelay] + * @param user The address for which a delay should be calculated. The delay is deterministic for any given address and pseudorandom value. + * @dev The delay is determined by calculating a distance between the user's address and a pseudorandom value using the XOR distance metric (c.f. Kademlia) + * + * Users cannot exploit the fair delay if: + * - The event is private, i.e. an access list of some form is required + * - Each eligible user gets exactly one address in the access list + * - There is no collusion between event participants, block validators, and event owners + * + * The threat of collusion is likely minimal: + * - the economic opportunity to validators is zero or relatively small (only specific addresses can participate in private events, and a lower delay time does not imply higher returns) + * - event owners are usually trying to achieve a fair distribution of access to their event + */ + function getFairDelayTime(address user) public view returns (uint256) { + if (distancePerSecond == 0) { + // there is no delay: all addresses may participate immediately + return 0; + } + + // calculate a distance between the random value and the user's address using the XOR distance metric (c.f. Kademlia) + uint160 distance = uint160(user) ^ randomValue; + + // return the delay (seconds) + return distance / distancePerSecond; + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/MerkleSetInitializable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/MerkleSetInitializable.sol new file mode 100644 index 00000000..fa7586c9 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/MerkleSetInitializable.sol @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; + +import {IMerkleSet} from "../../interfaces/IMerkleSet.sol"; + +/** + * @title MerkleSet + * @notice Checks merkle proofs + * @dev Contracts inheriting from MerkleSet may update the merkle root whenever desired. + */ +contract MerkleSetInitializable is Initializable, IMerkleSet { + bytes32 private merkleRoot; + + function __MerkleSet_init(bytes32 _merkleRoot) internal onlyInitializing { + _setMerkleRoot(_merkleRoot); + } + + modifier validMerkleProof(bytes32 leaf, bytes32[] memory merkleProof) { + _verifyMembership(leaf, merkleProof); + + _; + } + + /** + * @notice Tests membership in the merkle set + */ + function _testMembership(bytes32 leaf, bytes32[] memory merkleProof) internal view returns (bool) { + return MerkleProof.verify(merkleProof, merkleRoot, leaf); + } + + function getMerkleRoot() public view returns (bytes32) { + return merkleRoot; + } + + /** + * @dev Verifies membership in the merkle set + */ + function _verifyMembership(bytes32 leaf, bytes32[] memory merkleProof) internal view { + require(_testMembership(leaf, merkleProof), "invalid proof"); + } + + /** + * @dev Updates the merkle root + */ + function _setMerkleRoot(bytes32 _merkleRoot) internal { + merkleRoot = _merkleRoot; + emit SetMerkleRoot(merkleRoot); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingInitializable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingInitializable.sol new file mode 100644 index 00000000..21601b79 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingInitializable.sol @@ -0,0 +1,105 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +import "./AdvancedDistributorInitializable.sol"; +import {ITrancheVesting, Tranche} from "../../interfaces/ITrancheVesting.sol"; + +abstract contract TrancheVestingInitializable is Initializable, AdvancedDistributorInitializable, ITrancheVesting { + Tranche[] private tranches; + + function __TrancheVesting_init( + IERC20 _token, + uint256 _total, + string memory _uri, + Tranche[] memory _tranches, + uint160 _maxDelayTime, + uint160 _salt, + address _owner + ) internal onlyInitializing { + __AdvancedDistributor_init( + _token, + _total, + _uri, + 10000, // 1x voting power + 10000, // vested fraction + _maxDelayTime, + _salt, + _owner + ); + + _setTranches(_tranches); + } + + /** + * @notice Get the vested fraction for a beneficiary at a given time. + * @dev Before the first tranche time, the vested fraction will be 0. At times between + * tranche_i and tranche_i+1, the vested fraction will be tranche_i+1's vested fraction. + * After the last tranche time, the vested fraction will be the fraction denominator. + */ + function getVestedFraction(address beneficiary, uint256 time) public view override returns (uint256) { + uint256 delay = getFairDelayTime(beneficiary); + for (uint256 i = tranches.length; i != 0;) { + unchecked { + --i; + } + + if (time - delay > tranches[i].time) { + return tranches[i].vestedFraction; + } + } + + return 0; + } + + // Get a single tranche + function getTranche(uint256 i) public view returns (Tranche memory) { + return tranches[i]; + } + + // Get all tranches + function getTranches() public view returns (Tranche[] memory) { + return tranches; + } + + /** + * @dev Tranches can be updated at any time. The quantity of tokens a user can claim is based on the + * claimable quantity at the time of the claim and the quantity of tokens already claimed by the user. + */ + function _setTranches(Tranche[] memory _tranches) private { + require(_tranches.length != 0, "tranches required"); + + delete tranches; + + uint128 lastTime = 0; + uint128 lastVestedFraction = 0; + + for (uint256 i = 0; i < _tranches.length;) { + require(_tranches[i].vestedFraction != 0, "tranche vested fraction == 0"); + require(_tranches[i].time > lastTime, "tranche time must increase"); + require(_tranches[i].vestedFraction > lastVestedFraction, "tranche vested fraction must increase"); + lastTime = _tranches[i].time; + lastVestedFraction = _tranches[i].vestedFraction; + tranches.push(_tranches[i]); + + emit SetTranche(i, lastTime, lastVestedFraction); + + unchecked { + ++i; + } + } + + require(lastTime <= 4102444800, "vesting ends after 4102444800 (Jan 1 2100)"); + require(lastVestedFraction == fractionDenominator, "last tranche must vest all tokens"); + } + + /** + * @notice Set the vesting tranches. Tranches must be sorted by time and vested fraction must monotonically increase. + * The last tranche must vest all tokens (vestedFraction == fractionDenominator) + */ + function setTranches(Tranche[] memory _tranches) external onlyOwner { + _setTranches(_tranches); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol new file mode 100644 index 00000000..639dfe54 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +import "./TrancheVestingInitializable.sol"; +import "./MerkleSetInitializable.sol"; + +contract TrancheVestingMerkleDistributor is + Initializable, + TrancheVestingInitializable, + MerkleSetInitializable +{ + constructor() { + _disableInitializers(); + } + + function initialize( + IERC20 _token, // the token being claimed + uint256 _total, // the total claimable by all users + string memory _uri, // information on the sale (e.g. merkle proofs) + Tranche[] memory _tranches, + bytes32 _merkleRoot, // the merkle root for claim membership (also used as salt for the fair queue delay time), + uint160 _maxDelayTime, // the maximum delay time for the fair queue + address _owner + ) public initializer { + __TrancheVesting_init(_token, _total, _uri, _tranches, _maxDelayTime, uint160(uint256(_merkleRoot)), _owner); + + __MerkleSet_init(_merkleRoot); + + _transferOwnership(_owner); + } + + function NAME() external pure override returns (string memory) { + return "TrancheVestingMerkleDistributor"; + } + + function VERSION() external pure override returns (uint256) { + return 3; + } + + function initializeDistributionRecord( + uint256 index, // the beneficiary's index in the merkle root + address beneficiary, // the address that will receive tokens + uint256 amount, // the total claimable by this beneficiary + bytes32[] calldata merkleProof + ) external validMerkleProof(keccak256(abi.encodePacked(index, beneficiary, amount)), merkleProof) { + _initializeDistributionRecord(beneficiary, amount); + } + + function claim( + uint256 index, // the beneficiary's index in the merkle root + address beneficiary, // the address that will receive tokens + uint256 totalAmount, // the total claimable by this beneficiary + bytes32[] calldata merkleProof + ) + external + validMerkleProof(keccak256(abi.encodePacked(index, beneficiary, totalAmount)), merkleProof) + nonReentrant + { + // effects + uint256 claimedAmount = _executeClaim(beneficiary, totalAmount); + // interactions + _settleClaim(beneficiary, claimedAmount); + } + + function setMerkleRoot(bytes32 _merkleRoot) external onlyOwner { + _setMerkleRoot(_merkleRoot); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol new file mode 100644 index 00000000..dfcd45eb --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol @@ -0,0 +1,101 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; +import {Counters} from "@openzeppelin/contracts/utils/Counters.sol"; + +import {TrancheVestingMerkleDistributor, Tranche} from "./TrancheVestingMerkleDistributor.sol"; + +contract TrancheVestingMerkleDistributorFactory { + address private immutable i_implementation; + address[] public distributors; + + event DistributorDeployed(address indexed distributor); + + constructor(address implementation) { + i_implementation = implementation; + } + + function _getSalt( + IERC20 _token, // the token being claimed + uint256 _total, // the total claimable by all users + string memory _uri, // information on the sale (e.g. merkle proofs) + Tranche[] memory _tranches, + bytes32 _merkleRoot, // the merkle root for claim membership (also used as salt for the fair queue delay time), + uint160 _maxDelayTime, // the maximum delay time for the fair queue + address _owner, + uint256 _nonce + ) private pure returns (bytes32) { + return keccak256(abi.encode( + _token, + _total, + _uri, + _tranches, + _merkleRoot, + _maxDelayTime, + _owner, + _nonce + )); + } + + function deployDistributor( + IERC20 _token, // the token being claimed + uint256 _total, // the total claimable by all users + string memory _uri, // information on the sale (e.g. merkle proofs) + Tranche[] memory _tranches, + bytes32 _merkleRoot, // the merkle root for claim membership (also used as salt for the fair queue delay time), + uint160 _maxDelayTime, // the maximum delay time for the fair queue + address _owner, + uint256 _nonce + ) public returns (TrancheVestingMerkleDistributor distributor) { + bytes32 salt = _getSalt( + _token, + _total, + _uri, + _tranches, + _merkleRoot, + _maxDelayTime, + _owner, + _nonce + ); + + distributor = + TrancheVestingMerkleDistributor(Clones.cloneDeterministic(i_implementation, salt)); + distributors.push(address(distributor)); + + emit DistributorDeployed(address(distributor)); + + distributor.initialize(_token, _total, _uri, _tranches, _merkleRoot, _maxDelayTime, _owner); + + return distributor; + } + + function getImplementation() public view returns (address) { + return i_implementation; + } + + function predictDistributorAddress( + IERC20 _token, // the token being claimed + uint256 _total, // the total claimable by all users + string memory _uri, // information on the sale (e.g. merkle proofs) + Tranche[] memory _tranches, + bytes32 _merkleRoot, // the merkle root for claim membership (also used as salt for the fair queue delay time), + uint160 _maxDelayTime, // the maximum delay time for the fair queue + address _owner, + uint256 _nonce + ) public view returns (address) { + bytes32 salt = _getSalt( + _token, + _total, + _uri, + _tranches, + _merkleRoot, + _maxDelayTime, + _owner, + _nonce + ); + + return Clones.predictDeterministicAddress(i_implementation, salt, address(this)); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/governance/GovernorMultiSourceUpgradeable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/governance/GovernorMultiSourceUpgradeable.sol new file mode 100644 index 00000000..a226ba2d --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/governance/GovernorMultiSourceUpgradeable.sol @@ -0,0 +1,157 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts-upgradeable/governance/GovernorUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorCountingSimpleUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorTimelockControlUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; +import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; +import "./GovernorVotesMultiSourceUpgradeable.sol"; + +contract GovernorMultiSourceUpgradeable is + Initializable, + GovernorUpgradeable, + GovernorCountingSimpleUpgradeable, + GovernorVotesMultiSourceUpgradeable, + GovernorVotesQuorumFractionUpgradeable, + GovernorTimelockControlUpgradeable, + OwnableUpgradeable, + UUPSUpgradeable +{ + /** + This contract modifies OpenZeppelin's Governor to tally votes from multiple sources: + - the ERC20 voting token + - other contracts where voting power for each account monotonically decreases + + Because GovernorVotesQuorumFractionUpgradeable functionality is unchanged and vote sources may apply a voting factor other than one, + the percentage of total voting power required to reach quorum may differ somewhat from the value specified + (e.g. a 5% quorum of 1B votes is 50m votes, but if total voting power is 2B due to tokens in voting sources, the actual quorum of total voting power required to pass a proposal will be 2.5%) + */ + + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); + } + + function initialize( + IVotesUpgradeable _token, + TimelockControllerUpgradeable _timelock, + IVotesUpgradeable[] calldata _voteSources + ) public virtual initializer { + __Governor_init("Governor"); + __GovernorCountingSimple_init(); + __GovernorVotesMultiSource_init(_token, _voteSources); + __GovernorVotesQuorumFraction_init(5); // the quorum numerator (5%) + __GovernorTimelockControl_init(_timelock); + __Ownable_init(); + __UUPSUpgradeable_init(); + } + + function NAME() external pure returns (string memory) { + return "GovernorMultiSourceUpgradeable"; + } + + function VERSION() external pure returns (uint256) { + return 2; + } + + function votingDelay() public pure virtual override returns (uint256) { + // return 6545; // 1 day at 12 seconds per block + return 10; // blocks + } + + function votingPeriod() public pure virtual override returns (uint256) { + // return 50400; // 1 week at 12 seconds per block + return 1000; // blocks + } + + function proposalThreshold() public pure override returns (uint256) { + return 100000000000000000000000; // 0.01% of 1B token supply (100,000 tokens) + } + + function _authorizeUpgrade(address newImplementation) internal override onlyOwner {} + + function _getVotes( + address account, + uint256 blockNumber, + bytes memory _data + ) + internal + view + override( + // THIS LINE IS MODIFIED FROM OZ DEFAULTS + GovernorUpgradeable, + GovernorVotesUpgradeable, + GovernorVotesMultiSourceUpgradeable + ) + returns (uint256 votes) + { + return super._getVotes(account, blockNumber, _data); + } + + function quorum(uint256 blockNumber) + public + view + override(IGovernorUpgradeable, GovernorVotesQuorumFractionUpgradeable) + returns (uint256) + { + return super.quorum(blockNumber); + } + + function state(uint256 proposalId) + public + view + override(GovernorUpgradeable, GovernorTimelockControlUpgradeable) + returns (ProposalState) + { + return super.state(proposalId); + } + + function propose( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + string memory description + ) public override(GovernorUpgradeable, IGovernorUpgradeable) returns (uint256) { + return super.propose(targets, values, calldatas, description); + } + + function _execute( + uint256 proposalId, + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) internal override(GovernorUpgradeable, GovernorTimelockControlUpgradeable) { + super._execute(proposalId, targets, values, calldatas, descriptionHash); + } + + function _cancel( + address[] memory targets, + uint256[] memory values, + bytes[] memory calldatas, + bytes32 descriptionHash + ) internal override(GovernorUpgradeable, GovernorTimelockControlUpgradeable) returns (uint256) { + return super._cancel(targets, values, calldatas, descriptionHash); + } + + function _executor() + internal + view + override(GovernorUpgradeable, GovernorTimelockControlUpgradeable) + returns (address) + { + return super._executor(); + } + + function supportsInterface(bytes4 interfaceId) + public + view + override(GovernorUpgradeable, GovernorTimelockControlUpgradeable) + returns (bool) + { + return super.supportsInterface(interfaceId); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/governance/GovernorVotesMultiSourceUpgradeable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/governance/GovernorVotesMultiSourceUpgradeable.sol new file mode 100644 index 00000000..d8e0fdc0 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/governance/GovernorVotesMultiSourceUpgradeable.sol @@ -0,0 +1,87 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import {GovernorUpgradeable} from "@openzeppelin/contracts-upgradeable/governance/GovernorUpgradeable.sol"; +import {GovernorVotesUpgradeable, IVotesUpgradeable} from "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorVotesUpgradeable.sol"; + +abstract contract GovernorVotesMultiSourceUpgradeable is + GovernorUpgradeable, + GovernorVotesUpgradeable +{ + // Allow governor contract to reference additional vote sources + IVotesUpgradeable[] private voteSources; + + modifier validVoteSources(IVotesUpgradeable[] calldata _voteSources) { + for (uint256 i = 0; i < _voteSources.length; ) { + require( + _voteSources[i].getPastTotalSupply(block.number - 1) > 0, + "GovernorVotesMultiSourceUpgradeable: source has no votes" + ); + unchecked { + ++i; + } + } + + _; + } + + function __GovernorVotesMultiSource_init( + IVotesUpgradeable tokenAddress, + IVotesUpgradeable[] calldata _voteSources + ) internal onlyInitializing { + __GovernorVotesMultiSource_init__unchained(tokenAddress, _voteSources); + } + + function __GovernorVotesMultiSource_init__unchained( + IVotesUpgradeable tokenAddress, + IVotesUpgradeable[] calldata _voteSources + ) internal onlyInitializing validVoteSources(_voteSources) { + super.__GovernorVotes_init_unchained(tokenAddress); + voteSources = _voteSources; + } + + /** + Modified from open zeppelin defaults + */ + function _getVotes( + address account, + uint256 blockNumber, + bytes memory _data + ) + internal + view + virtual + override(GovernorUpgradeable, GovernorVotesUpgradeable) + returns (uint256 votes) + { + // get votes from the ERC20 token + votes = super._getVotes(account, blockNumber, _data); + + // get votes from the distribution contracts + IVotesUpgradeable[] memory _voteSources = voteSources; + for (uint256 i = 0; i < _voteSources.length; ) { + votes += voteSources[i].getPastVotes(account, blockNumber); + unchecked { + ++i; + } + } + } + + /** + New function allowing the DAO to update its vote sources + */ + function setVoteSources(IVotesUpgradeable[] calldata _voteSources) + public + onlyGovernance + validVoteSources(_voteSources) + { + voteSources = _voteSources; + } + + function getVoteSources() public view returns (IVotesUpgradeable[] memory) { + return voteSources; + } + + // permit future upgrades + uint256[10] private __gap; +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/governance/TimelockControllerUpgradeable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/governance/TimelockControllerUpgradeable.sol new file mode 100644 index 00000000..1b44a7e8 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/governance/TimelockControllerUpgradeable.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts-upgradeable/governance/TimelockControllerUpgradeable.sol"; + +contract MyTimelockControllerUpgradeable is TimelockControllerUpgradeable { + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); + } + + function initialize( + uint256 minDelay, + address[] memory proposers, + address[] memory executors + ) public initializer { + __TimelockController_init(minDelay, proposers, executors); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IAdjustable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IAdjustable.sol new file mode 100644 index 00000000..b75e8133 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IAdjustable.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +/** + * @title IAdjustable + * @dev Interface for the Adjustable contract. Defines methods to update + * the contract and events emitted upon update. + */ +interface IAdjustable { + event Adjust(address indexed beneficiary, int256 amount); + event SetToken(IERC20 indexed token); + event SetTotal(uint256 total); + event SetUri(string indexed uri); + + // Adjust the quantity claimable by a user + function adjust(address beneficiary, int256 amount) external; + + // Set the token being distributed + function setToken(IERC20 token) external; + + // Set the total distribution quantity + function setTotal(uint256 total) external; + + // Set the distributor metadata URI + function setUri(string memory uri) external; + + // Set the voting power of undistributed tokens + function setVoteFactor(uint256 setVoteFactor) external; +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IConnext.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IConnext.sol new file mode 100644 index 00000000..ed2261e1 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IConnext.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +interface IConnext { + + function xcall( + uint32 _destination, + address _to, + address _asset, + address _delegate, + uint256 _amount, + uint256 _slippage, + bytes calldata _callData + ) external payable returns (bytes32); + + function xcall( + uint32 _destination, + address _to, + address _asset, + address _delegate, + uint256 _amount, + uint256 _slippage, + bytes calldata _callData, + uint256 _relayerFee + ) external returns (bytes32); + + function xcallIntoLocal( + uint32 _destination, + address _to, + address _asset, + address _delegate, + uint256 _amount, + uint256 _slippage, + bytes calldata _callData + ) external payable returns (bytes32); + + function domain() external view returns (uint256); +} \ No newline at end of file diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IContinuousVesting.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IContinuousVesting.sol new file mode 100644 index 00000000..9a3d9324 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IContinuousVesting.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +interface IContinuousVesting { + event SetContinuousVesting(uint256 start, uint256 cliff, uint256 end); + + function getVestingConfig() + external + view + returns ( + uint256, + uint256, + uint256 + ); + + function setVestingConfig( + uint256 _start, + uint256 _cliff, + uint256 _end + ) external; +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/ICrosschain.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/ICrosschain.sol new file mode 100644 index 00000000..d6da3d2e --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/ICrosschain.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { IDistributor } from './IDistributor.sol'; +import { IXReceiver } from './IXReceiver.sol'; + +/** + * @notice Defines functions and events for receiving and tracking crosschain claims + */ +interface ICrosschain is IDistributor, IXReceiver { + /** + * @dev The beneficiary and recipient may be different addresses. The beneficiary is the address + * eligible to receive the claim, and the recipient is where the funds are actually sent. + */ + event CrosschainClaim( + bytes32 indexed id, + address indexed beneficiary, + address indexed recipient, + uint32 recipientDomain, + uint256 amount + ); +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IDistributor.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IDistributor.sol new file mode 100644 index 00000000..20d4a8e2 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IDistributor.sol @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { IERC20 } from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; + +/** + * @dev This struct tracks claim progress for a given beneficiary. + * Because many claims are stored in a merkle root, this struct is only valid once initialized. + * Users can no longer claim once their claimed quantity meets or exceeds their total quantity. + * Note that admins may update the merkle root or adjust the total quantity for a specific + * beneficiary after initialization! + */ +struct DistributionRecord { + bool initialized; // has the claim record been initialized + uint120 total; // total token quantity claimable + uint120 claimed; // token quantity already claimed +} + +interface IDistributor { + event InitializeDistributor( + IERC20 indexed token, // the ERC20 token being distributed + uint256 total, // total distribution quantity across all beneficiaries + string uri, // a URI for additional information about the distribution + uint256 fractionDenominator // the denominator for vesting fractions represented as integers + ); + + // Fired once when a beneficiary's distribution record is set up + event InitializeDistributionRecord(address indexed beneficiary, uint256 total); + + // Fired every time a claim for a beneficiary occurs + event Claim(address indexed beneficiary, uint256 amount); + + /** + * @dev get the current distribution status for a particular user + * @param beneficiary the address of the beneficiary + */ + function getDistributionRecord( + address beneficiary + ) external view returns (DistributionRecord memory); + + /** + * @dev get the amount of tokens currently claimable by a beneficiary + * @param beneficiary the address of the beneficiary + */ + function getClaimableAmount(address beneficiary) external view returns (uint256); + + /** + * @dev get the denominator for vesting fractions represented as integers + */ + function getFractionDenominator() external view returns (uint256); + + /** + * @dev get the ERC20 token being distributed + */ + function token() external view returns (IERC20); + + /** + * @dev get the total distribution quantity across all beneficiaries + */ + function total() external view returns (uint256); + + /** + * @dev get a URI for additional information about the distribution + */ + function uri() external view returns (string memory); + + /** + * @dev get a human-readable name for the distributor that describes basic functionality + * On-chain consumers should rely on registered ERC165 interface IDs or similar for more specificity + */ + function NAME() external view returns (string memory); + + /** + * @dev get a human-readable version for the distributor that describes basic functionality + * The version should update whenever functionality significantly changes + * On-chain consumers should rely on registered ERC165 interface IDs or similar for more specificity + */ + function VERSION() external view returns (uint256); +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20.sol new file mode 100644 index 00000000..40c5d24e --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20Extended.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20Extended.sol new file mode 100644 index 00000000..659929f9 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20Extended.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: BSL-1.1 +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +interface IERC20Extended is IERC20 { + function decimals() external view returns (uint8); +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20Metadata.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20Metadata.sol new file mode 100644 index 00000000..d8784f85 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IERC20Metadata.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IHashflowQuote.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IHashflowQuote.sol new file mode 100644 index 00000000..656576ed --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IHashflowQuote.sol @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; +interface IHashflowQuote { + struct RFQTQuote { + address pool; + address externalAccount; + address trader; + address effectiveTrader; + address baseToken; + address quoteToken; + uint256 effectiveBaseTokenAmount; + uint256 maxBaseTokenAmount; + uint256 maxQuoteTokenAmount; + uint256 quoteExpiry; + uint256 nonce; + bytes32 txid; + bytes signature; + } + + struct XChainRFQTQuote { + uint16 srcChainId; + uint16 dstChainId; + address srcPool; + bytes32 dstPool; + address srcExternalAccount; + bytes32 dstExternalAccount; + address trader; + address baseToken; + address quoteToken; + uint256 baseTokenAmount; + uint256 quoteTokenAmount; + uint256 quoteExpiry; + uint256 nonce; + bytes32 txid; + bytes signature; + } + + enum XChainMessageProtocol { + layerZero, + wormhole + } + + function tradeSingleHop (RFQTQuote calldata quote) external payable; + + function tradeXChain ( + XChainRFQTQuote calldata quote, + XChainMessageProtocol protocol + ) external payable; +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IMerkleSet.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IMerkleSet.sol new file mode 100644 index 00000000..240a5530 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IMerkleSet.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.17; + +interface IMerkleSet { + event SetMerkleRoot(bytes32 merkleRoot); + + function getMerkleRoot() external view returns (bytes32 root); +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IOracleOrL2OracleWithSequencerCheck.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IOracleOrL2OracleWithSequencerCheck.sol new file mode 100644 index 00000000..ac277ea5 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IOracleOrL2OracleWithSequencerCheck.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +interface IOracleOrL2OracleWithSequencerCheck { + function decimals() external view returns (uint8); + + function latestRoundData() external view returns ( + uint80 roundId, + int256 answer, + uint256 startedAt, + uint256 updatedAt, + uint80 answeredInRound + ); +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IPriceTierVesting.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IPriceTierVesting.sol new file mode 100644 index 00000000..27912f51 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IPriceTierVesting.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "./IOracleOrL2OracleWithSequencerCheck.sol"; + +// time and vested fraction must monotonically increase in the tranche array +struct PriceTier { + uint128 price; // block.timestamp upon which the tranche vests + uint128 vestedFraction; // fraction of tokens unlockable +} + +interface IPriceTierVesting { + event SetPriceTierConfig( + uint256 start, + uint256 end, + IOracleOrL2OracleWithSequencerCheck oracle, + PriceTier[] tiers + ); + + function getStart() external view returns (uint256); + + function getEnd() external view returns (uint256); + + function getOracle() external view returns (IOracleOrL2OracleWithSequencerCheck); + + function getPriceTier(uint256 i) external view returns (PriceTier memory); + + function getPriceTiers() external view returns (PriceTier[] memory); + + function setPriceTiers( + uint256 _start, + uint256 _end, + IOracleOrL2OracleWithSequencerCheck _oracle, + PriceTier[] memory _tiers + ) external; +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/ITrancheVesting.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/ITrancheVesting.sol new file mode 100644 index 00000000..70d9e695 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/ITrancheVesting.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +struct Tranche { + uint128 time; // block.timestamp upon which the tranche vests + uint128 vestedFraction; // fraction of tokens unlockable as basis points (e.g. 100% of vested tokens is the fraction denominator, defaulting to 10000) +} + +interface ITrancheVesting { + event SetTranche(uint256 indexed index, uint128 time, uint128 VestedFraction); + + function getTranche(uint256 i) external view returns (Tranche memory); + + function getTranches() external view returns (Tranche[] memory); + + function setTranches(Tranche[] memory _tranches) external; +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IVesting.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IVesting.sol new file mode 100644 index 00000000..e4bcb5c5 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IVesting.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +interface IVesting { + function getVestedFraction( + address, /*beneficiary*/ + uint256 time // time is in seconds past the epoch (e.g. block.timestamp) + ) external returns (uint256); +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IVoting.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IVoting.sol new file mode 100644 index 00000000..ebcc49dd --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IVoting.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.17; + +import { IVotes } from "@openzeppelin/contracts/governance/utils/IVotes.sol"; + +interface IVoting is IVotes { + event SetVoteFactor(uint256 voteFactor); + + // an total current voting power + function getTotalVotes() external view returns (uint256); + + // a weighting factor used to convert token holdings to voting power (eg in basis points) + function getVoteFactor(address account) external view returns (uint256); +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IXReceiver.sol b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IXReceiver.sol new file mode 100644 index 00000000..a1740a28 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/interfaces/IXReceiver.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.0; + +interface IXReceiver { + function xReceive( + bytes32 _transferId, + uint256 _amount, + address _asset, + address _originSender, + uint32 _origin, + bytes memory _callData + ) external returns (bytes memory); +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/mocks/ConnextMock.sol b/packages/hardhat/zksync-hardhat/contracts/ts/mocks/ConnextMock.sol new file mode 100644 index 00000000..ed522179 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/mocks/ConnextMock.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import { IXReceiver } from '../interfaces/IXReceiver.sol'; + +contract ConnextMock { + event XCalled( + uint32 destination, + address to, + address asset, + address delegate, + uint256 amount, + uint256 slippage, + bytes callData + ); + event NativeRelayerFeeIncluded(address indexed caller, uint256 amount); + uint32 private _domain; + constructor(uint32 domain_) { + setDomain(domain_); + } + + function domain() public view returns (uint32) { + return _domain; + } + + function setDomain(uint32 domain_) public { + _domain = domain_; + } + + function xcall( + uint32 _destination, + address _to, + address _asset, + address _delegate, + uint256 _amount, + uint256 _slippage, + bytes calldata _callData + ) public payable returns (bytes32) { + // Transfer asset if needed + if (_amount > 0) { + IERC20(_asset).transferFrom(msg.sender, address(this), _amount); + } + + // Emit relayer fee event for native asset + if (msg.value > 0) { + emit NativeRelayerFeeIncluded(msg.sender, msg.value); + } + + // Emit event + return identifier + emit XCalled(_destination, _to, _asset, _delegate, _amount, _slippage, _callData); + return keccak256(abi.encode(_destination, _to, _asset, _delegate, _amount, _slippage, _callData)); + } + + // call the xreceive contract pretending to be connext on the same chain + function callXreceive( + bytes32 _transferId, + uint256 _amount, + address _asset, + address _originSender, + uint32 _origin, + bytes32[] memory _proof, + address _distributor + ) public returns (bytes memory) { + + return IXReceiver(_distributor).xReceive( + _transferId, + _amount, + _asset, + _originSender, + _domain, + abi.encode(_originSender, _origin, _amount, _proof) + ); + } +} \ No newline at end of file diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/mocks/FakeChainlinkOracle.sol b/packages/hardhat/zksync-hardhat/contracts/ts/mocks/FakeChainlinkOracle.sol new file mode 100644 index 00000000..d70dc4dc --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/mocks/FakeChainlinkOracle.sol @@ -0,0 +1,220 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "../interfaces/IOracleOrL2OracleWithSequencerCheck.sol"; + +contract FakeChainlinkOracle is IOracleOrL2OracleWithSequencerCheck { + int256 private answer; + string private oracleDescription; + + constructor(int256 _answer, string memory _oracleDescription) { + answer = _answer; + oracleDescription = _oracleDescription; + } + + function decimals() external pure returns (uint8) { + return 8; + } + + function description() external view returns (string memory) { + return oracleDescription; + } + + function version() external pure returns (uint256) { + return 3; + } + + function setAnswer(int256 _answer) public { + answer = _answer; + } + + function latestRoundData() + external + view + returns ( + uint80 roundId, + int256, + uint256 startedAt, + uint256 updatedAt, + uint80 answeredInRound + ) + { + return (92233720368547777283, answer, 1644641759, 1644641759, 92233720368547777283); + } + + function getRoundData(uint80 /* _roundId */) + external + view + returns ( + uint80 roundId, + int256, + uint256 startedAt, + uint256 updatedAt, + uint80 answeredInRound + ) + { + return (92233720368547777283, answer, 1644641759, 1644641759, 92233720368547777283); + } +} + +contract FakeEthOracle is IOracleOrL2OracleWithSequencerCheck { + int256 private answer; + string private oracleDescription; + + constructor(int256 _answer, string memory _oracleDescription) { + answer = _answer; + oracleDescription = _oracleDescription; + } + + function decimals() external pure returns (uint8) { + return 8; + } + + function description() external view returns (string memory) { + return oracleDescription; + } + + function version() external pure returns (uint256) { + return 3; + } + + function setAnswer(int256 _answer) public { + answer = _answer; + } + + function latestRoundData() + external + view + returns ( + uint80 roundId, + int256, + uint256 startedAt, + uint256 updatedAt, + uint80 answeredInRound + ) + { + return (92233720368547777283, answer, 1644641759, 1644641759, 92233720368547777283); + } + + function getRoundData(uint80 /* _roundId */) + external + view + returns ( + uint80 roundId, + int256, + uint256 startedAt, + uint256 updatedAt, + uint80 answeredInRound + ) + { + return (92233720368547777283, answer, 1644641759, 1644641759, 92233720368547777283); + } +} + +contract FakeUsdcOracle is IOracleOrL2OracleWithSequencerCheck { + int256 private answer; + string private oracleDescription; + + constructor(int256 _answer, string memory _oracleDescription) { + answer = _answer; + oracleDescription = _oracleDescription; + } + + function decimals() external pure returns (uint8) { + return 8; + } + + function description() external view returns (string memory) { + return oracleDescription; + } + + function version() external pure returns (uint256) { + return 3; + } + + function setAnswer(int256 _answer) public { + answer = _answer; + } + + function latestRoundData() + external + view + returns ( + uint80 roundId, + int256, + uint256 startedAt, + uint256 updatedAt, + uint80 answeredInRound + ) + { + return (92233720368547777283, answer, 1644641759, 1644641759, 92233720368547777283); + } + + function getRoundData(uint80 /* _roundId */) + external + view + returns ( + uint80 roundId, + int256, + uint256 startedAt, + uint256 updatedAt, + uint80 answeredInRound + ) + { + return (92233720368547777283, answer, 1644641759, 1644641759, 92233720368547777283); + } +} + +contract FakeUsdtOracle is IOracleOrL2OracleWithSequencerCheck { + int256 private answer; + string private oracleDescription; + + constructor(int256 _answer, string memory _oracleDescription) { + answer = _answer; + oracleDescription = _oracleDescription; + } + + function decimals() external pure returns (uint8) { + return 8; + } + + function description() external view returns (string memory) { + return oracleDescription; + } + + function version() external pure returns (uint256) { + return 3; + } + + function setAnswer(int256 _answer) public { + answer = _answer; + } + + function latestRoundData() + external + view + returns ( + uint80 roundId, + int256, + uint256 startedAt, + uint256 updatedAt, + uint80 answeredInRound + ) + { + return (92233720368547777283, answer, 1644641759, 1644641759, 92233720368547777283); + } + + function getRoundData(uint80 /* _roundId */) + external + view + returns ( + uint80 roundId, + int256, + uint256 startedAt, + uint256 updatedAt, + uint80 answeredInRound + ) + { + return (92233720368547777283, answer, 1644641759, 1644641759, 92233720368547777283); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/mocks/GovernorMultiSourceUpgradeableMock.sol b/packages/hardhat/zksync-hardhat/contracts/ts/mocks/GovernorMultiSourceUpgradeableMock.sol new file mode 100644 index 00000000..e6ada9a7 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/mocks/GovernorMultiSourceUpgradeableMock.sol @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import {GovernorMultiSourceUpgradeable, TimelockControllerUpgradeable, IVotesUpgradeable} from "../governance/GovernorMultiSourceUpgradeable.sol"; + +// IMPORTANT: DO NOT USE THIS CONTRACT IN PRODUCTION: THE VOTING PERIOD IS TOO SHORT! +// Change the voting delay and voting period to be shorter for testing (these are hard-coded in the real contract for gas efficiency) +contract GovernorMultiSourceUpgradeableMock is GovernorMultiSourceUpgradeable { + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); + } + + function initialize( + IVotesUpgradeable _token, + TimelockControllerUpgradeable _timelock, + IVotesUpgradeable[] calldata _voteSources + ) public override initializer { + __Governor_init("Governor"); + __GovernorCountingSimple_init(); + __GovernorVotesMultiSource_init(_token, _voteSources); + __GovernorVotesQuorumFraction_init(5); // the quorum numerator (5%) + __GovernorTimelockControl_init(_timelock); + __Ownable_init(); + __UUPSUpgradeable_init(); + } + + function votingDelay() public pure override returns (uint256) { + return 0; + } + + function votingPeriod() public pure override returns (uint256) { + // 10 blocks + return 10; + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/mocks/HashflowRouterMock.sol b/packages/hardhat/zksync-hardhat/contracts/ts/mocks/HashflowRouterMock.sol new file mode 100644 index 00000000..bb1e8bf9 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/mocks/HashflowRouterMock.sol @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IHashflowQuote} from "../interfaces/IHashflowQuote.sol"; + +// See https://docs.hashflow.com/hashflow/taker/getting-started +contract HashflowRouterMock is IHashflowQuote { + using SafeERC20 for IERC20; + constructor() {} + + // mock a fee + function estimateCrossChainFee() public pure returns (uint256) { + return 1234; + } + + function tradeSingleHop (RFQTQuote calldata quote) public payable { + // maker is a pool or separate account + address maker = quote.externalAccount == address(0) + ? quote.pool + : quote.externalAccount; + + // transfer base token to maker + if (quote.baseToken != address(0)) { + // this is an ERC20 transfer + IERC20(quote.baseToken).safeTransferFrom(msg.sender, maker, quote.effectiveBaseTokenAmount); + } else { + // this is a native token transfer + (bool success, ) = maker.call{value: quote.effectiveBaseTokenAmount}(""); + require(success, "native baseToken trade failed"); + } + + // scale the quoted token transfer based on taker order size + uint256 quoteTokenAmount = quote.maxQuoteTokenAmount * quote.effectiveBaseTokenAmount / quote.maxBaseTokenAmount; + // transfer base token to maker + if (quote.quoteToken != address(0)) { + // this is an ERC20 transfer + IERC20(quote.quoteToken).safeTransferFrom(maker, quote.trader, quoteTokenAmount); + } else { + // this is a native token transfer + // the fake Hashflow router already holds a bunch of native tokens (probably not how this works in practice) + (bool success, ) = quote.trader.call{value: quoteTokenAmount}(""); + require(success, "native quoteToken trade failed"); + } + } + + function tradeXChain ( + XChainRFQTQuote calldata quote, + XChainMessageProtocol // protocol + ) public payable { + if (quote.baseToken != address(0)) { + // this is an ERC20 traade - pay for cross-chain fee in native token + require(msg.value == estimateCrossChainFee(), "incorrect xChainFeeEstimate"); + IERC20(quote.baseToken).safeTransferFrom(msg.sender, quote.srcPool, quote.baseTokenAmount); + } else { + // this is a native trade - pay for the base token and cross-chain fee in native token + require(msg.value == estimateCrossChainFee() + quote.baseTokenAmount, "incorrect xChainFeeEstimate"); + (bool success, ) = quote.srcPool.call{value: quote.baseTokenAmount}(""); + require(success, "x-chain native trade failed"); + } + // The other half of the trade occurs on another chain + } + + // fake - give maker a way to settle in ETH + function depositEth() external payable {} +} + diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/payment/Payment.sol b/packages/hardhat/zksync-hardhat/contracts/ts/payment/Payment.sol new file mode 100644 index 00000000..1f196f12 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/payment/Payment.sol @@ -0,0 +1,457 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; +// pragma abicoder v2; + +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import "../utilities/Sweepable.sol"; +import "../interfaces/IOracleOrL2OracleWithSequencerCheck.sol"; + +// Metrics are only updated by the buyWithToken() and buyWithNative() functions +struct Metrics { + // number of purchases + uint256 purchaseCount; + // number of buyers + uint256 buyerCount; + // amount bought denominated in a base currency + uint256 purchaseTotal; + // amount bought for each user denominated in a base currency + mapping(address => uint256) buyerTotal; +} + +struct PaymentTokenInfo { + IOracleOrL2OracleWithSequencerCheck oracle; + uint8 decimals; +} + +// contract Payment is Sweepable { +// using SafeERC20 for IERC20; + +// event Initialize(string baseCurrency, IOracleOrL2OracleWithSequencerCheck nativeOracle, bool nativePaymentsEnabled); +// event SetPaymentTokenInfo(IERC20 token, PaymentTokenInfo paymentTokenInfo); + +// // All chainlink oracles used must have 8 decimals! +// uint256 constant public BASE_CURRENCY_DECIMALS = 8; +// // All supported chains must use 18 decimals (e.g. 1e18 wei / eth) +// uint256 constant internal NATIVE_TOKEN_DECIMALS = 18; +// // the base currency being used, e.g. 'USD' +// string public baseCurrency; + +// string public constant NAME = 'Payment'; +// uint public constant VERSION = 1; + +// // / price, e.g. ETH/USD price +// IOracleOrL2OracleWithSequencerCheck public nativeTokenPriceOracle; + +// // whether native payments are enabled (set during intialization) +// bool nativePaymentsEnabled; + +// // / price oracles, eg USDC address => ETH/USDC price +// mapping(IERC20 => PaymentTokenInfo) public paymentTokens; + +// // derived from payments +// Metrics public metrics; + +// // All clones will share the information in the implementation constructor +// constructor( +// address payable recipient +// ) { +// feeRecipient = _feeRecipient; +// feeBips = _feeBips; + +// emit ImplementationConstructor(feeRecipient, feeBips); +// } + +// /** +// Replacement for constructor for clones of the implementation contract +// Important: anyone can call the initialize function! +// */ +// function initialize( +// address _owner, +// Config calldata _config, +// string calldata _baseCurrency, +// bool _nativePaymentsEnabled, +// IOracleOrL2OracleWithSequencerCheck _nativeTokenPriceOracle, +// IERC20Upgradeable[] calldata tokens, +// IOracleOrL2OracleWithSequencerCheck[] calldata oracles, +// uint8[] calldata decimals +// ) public initializer validUpdate(_config) { +// // initialize the PullPayment escrow contract +// __PullPayment_init(); + +// // validate the new sale +// require(tokens.length == oracles.length, "token and oracle lengths !="); +// require(tokens.length == decimals.length, "token and decimals lengths !="); +// require(address(_nativeTokenPriceOracle) != address(0), "native oracle == 0"); +// require(_nativeTokenPriceOracle.decimals() == BASE_CURRENCY_DECIMALS, "native oracle decimals != 8"); + +// // save the new sale +// config = _config; + +// // save payment config +// baseCurrency = _baseCurrency; +// nativeTokenPriceOracle = _nativeTokenPriceOracle; +// nativePaymentsEnabled = _nativePaymentsEnabled; +// emit Initialize(config, baseCurrency, nativeTokenPriceOracle, _nativePaymentsEnabled); + +// for (uint i = 0; i < tokens.length; i++) { +// // double check that tokens and oracles are real addresses +// require(address(tokens[i]) != address(0), "payment token == 0"); +// require(address(oracles[i]) != address(0), "token oracle == 0"); +// // Double check that oracles use the expected 8 decimals +// require(oracles[i].decimals() == BASE_CURRENCY_DECIMALS, "token oracle decimals != 8"); +// // save the payment token info +// paymentTokens[tokens[i]] = PaymentTokenInfo({ +// oracle: oracles[i], +// decimals: decimals[i] +// }); + +// emit SetPaymentTokenInfo(tokens[i], paymentTokens[tokens[i]]); +// } + +// // Set the random value for the fair queue time +// randomValue = generatePseudorandomValue(config.merkleRoot); + +// // transfer ownership to the user initializing the sale +// _transferOwnership(_owner); +// } + +// /** +// Check that the user can currently participate in the sale based on the merkle root + +// Merkle root options: +// - bytes32(0): this is a public sale, any address can participate +// - otherwise: this is a private sale, users must submit a merkle proof that their address is included in the merkle root +// */ +// modifier canAccessSale(bytes calldata data, bytes32[] calldata proof) { +// // make sure the buyer is an EOA +// // TODO: Review this check for meta-transactions +// require((_msgSender() == tx.origin), "Must buy with an EOA"); + +// // If the merkle root is non-zero this is a private sale and requires a valid proof +// if (config.merkleRoot == bytes32(0)) { +// // this is a public sale +// // IMPORTANT: data is only validated if the merkle root is checked! Public sales do not check any merkle roots! +// require(data.length == 0, "data not permitted on public sale"); +// } else { +// // this is a private sale +// require( +// this.isValidMerkleProof( +// config.merkleRoot, +// _msgSender(), +// data, +// proof +// ) == true, +// "bad merkle proof for sale" +// ); +// } + +// // Require the sale to be open +// require(block.timestamp > config.startTime, "sale has not started yet"); +// require(block.timestamp < config.endTime, "sale has ended"); +// require(metrics.purchaseTotal < config.saleMaximum, "sale buy limit reached"); + +// // Reduce congestion by randomly assigning each user a delay time in a virtual queue based on comparing their address and a random value +// // if config.maxQueueTime == 0 the delay is 0 +// require(block.timestamp - config.startTime > getFairQueueTime(_msgSender()), "not your turn yet"); +// _; +// } + +// /** +// Check that the new sale is a valid update +// - If the config already exists, it must not be over (cannot edit sale after it concludes) +// - Sale start, end, and max queue times must be consistent and not too far in the future +// */ +// modifier validUpdate(Config calldata newConfig) { +// // get the existing config +// Config memory oldConfig = config; + +// /** +// - @notice - Block updates after sale is over +// - @dev - Since validUpdate is called by initialize(), we can have a new +// - sale here, identifiable by default randomValue of 0 +// */ +// if (randomValue != 0) { +// // this is an existing sale: cannot update after it has ended +// require(block.timestamp < oldConfig.endTime, "sale is over: cannot upate"); +// if (block.timestamp > oldConfig.startTime) { +// // the sale has already started, some things should not be edited +// require(oldConfig.saleMaximum == newConfig.saleMaximum, "editing saleMaximum after sale start"); +// } +// } + +// // the total sale limit must be at least as large as the per-user limit + +// // all required values must be present and reasonable +// // check if the caller accidentally entered a value in milliseconds instead of seconds +// require(newConfig.startTime <= 4102444800, "start > 4102444800 (Jan 1 2100)"); +// require(newConfig.endTime <= 4102444800, "end > 4102444800 (Jan 1 2100)"); +// require(newConfig.maxQueueTime <= 604800, "max queue time > 604800 (1 week)"); +// require(newConfig.recipient != address(0), "recipient == address(0)"); + +// // sale, user, and purchase limits must be compatible +// require(newConfig.saleMaximum > 0, "saleMaximum == 0"); +// require(newConfig.userMaximum > 0, "userMaximum == 0"); +// require(newConfig.userMaximum <= newConfig.saleMaximum, "userMaximum > saleMaximum"); +// require(newConfig.purchaseMinimum <= newConfig.userMaximum, "purchaseMinimum > userMaximum"); + +// // new sale times must be internally consistent +// require(newConfig.startTime + newConfig.maxQueueTime < newConfig.endTime, "sale must be open for at least maxQueueTime"); + +// _; +// } + +// modifier validPaymentToken(IERC20Upgradeable token) { +// // check that this token is configured as a payment method +// PaymentTokenInfo memory info = paymentTokens[token]; +// require(address(info.oracle) != address(0), "invalid payment token"); + +// _; +// } + +// modifier areNativePaymentsEnabled() { +// require(nativePaymentsEnabled, "native payments disabled"); + +// _; +// } + +// // Get info on a payment token +// function getPaymentToken(IERC20Upgradeable token) external view returns (PaymentTokenInfo memory) { +// return paymentTokens[token]; +// } + +// // Get a positive token price from a chainlink oracle +// function getOraclePrice(IOracleOrL2OracleWithSequencerCheck oracle) public view returns (uint) { +// ( +// uint80 roundID, +// int _price, +// uint startedAt, +// uint timeStamp, +// uint80 answeredInRound +// ) = oracle.latestRoundData(); + +// require(_price > 0, "negative price"); +// require(answeredInRound > 0, "answer == 0"); +// require(timeStamp > 0, "round not complete"); +// require(answeredInRound >= roundID, "stale price"); + +// return uint(_price); +// } + +// /** +// Generate a pseudorandom value +// This is not a truly random value: +// - miners can alter the block hash +// - owners can repeatedly call setMerkleRoot() +// - owners can choose when to submit the transaction +// */ +// function generatePseudorandomValue(bytes32 merkleRoot) public view returns(uint160) { +// return uint160(uint256(blockhash(block.number - 1))) ^ uint160(uint256(merkleRoot)); +// } + +// /** +// Get the delay in seconds that a specific buyer must wait after the sale begins in order to buy tokens in the sale + +// Buyers cannot exploit the fair queue when: +// - The sale is private (merkle root != bytes32(0)) +// - Each eligible buyer gets exactly one address in the merkle root + +// Although miners and sellers can minimize the delay for an arbitrary address, these are not significant threats: +// - the economic opportunity to miners is zero or relatively small (only specific addresses can participate in private sales, and a better queue postion does not imply high returns) +// - sellers can repeatedly set merkle roots to achieve a favorable queue time for any address, but sellers already control the tokens being sold! +// */ +// function getFairQueueTime(address buyer) public view returns(uint) { +// if (config.maxQueueTime == 0) { +// // there is no delay: all addresses may participate immediately +// return 0; +// } + +// // calculate a distance between the random value and the user's address using the XOR distance metric (c.f. Kademlia) +// uint160 distance = uint160(buyer) ^ randomValue; + +// // calculate a speed at which the queue is exhausted such that all users complete the queue by sale.maxQueueTime +// uint160 distancePerSecond = type(uint160).max / uint160(config.maxQueueTime); +// // return the delay (seconds) +// return distance / distancePerSecond; +// } + +// /** +// Convert a token quantity (e.g. USDC or ETH) to a base currency (e.g. USD) with the same number of decimals as the price oracle (e.g. 8) + +// Example: given 2 NCT tokens, each worth $1.23, tokensToBaseCurrency should return 246000000 ($2.46) + +// Function arguments +// - tokenQuantity: 2000000000000000000 +// - tokenDecimals: 18 + +// NCT/USD chainlink oracle (important! the oracle must be / not /, e.g. ETH/USD, ~$2000 not USD/ETH, ~0.0005) +// - baseCurrencyPerToken: 123000000 +// - baseCurrencyDecimals: 8 + +// Calculation: 2000000000000000000 * 123000000 / 1000000000000000000 + +// Returns: 246000000 +// */ +// // function tokensToBaseCurrency(SafeERC20Upgradeable token, uint256 quantity) public view validPaymentToken(token) returns (uint256) { +// // PaymentTokenInfo info = paymentTokens[token]; +// // return quantity * getOraclePrice(info.oracle) / (10 ** info.decimals); +// // } +// function tokensToBaseCurrency(uint256 tokenQuantity, uint256 tokenDecimals, IOracleOrL2OracleWithSequencerCheck oracle) public view returns (uint256 value) { +// return tokenQuantity * getOraclePrice(oracle) / (10 ** tokenDecimals); +// } + +// function total() external override view returns(uint256) { +// return metrics.purchaseTotal; +// } + +// function isOver() public override view returns(bool) { +// return config.endTime <= block.timestamp || metrics.purchaseTotal >= config.saleMaximum; +// } + +// function isOpen() public override view returns(bool) { +// return config.startTime < block.timestamp && config.endTime > block.timestamp && metrics.purchaseTotal < config.saleMaximum; +// } + +// // return the amount bought by this user in base currency +// function buyerTotal(address user) external override view returns(uint256) { +// return metrics.buyerTotal[user]; +// } + +// /** +// Records a purchase +// Follow the Checks -> Effects -> Interactions pattern +// * Checks: CALLER MUST ENSURE BUYER IS PERMITTED TO PARTICIPATE IN THIS SALE: THIS METHOD DOES NOT CHECK WHETHER THE BUYER SHOULD BE ABLE TO ACCESS THE SALE! +// * Effects: record the payment +// * Interactions: none! +// */ +// function _execute(uint256 baseCurrencyQuantity, bytes calldata data) internal { +// // Checks +// uint256 userLimit = config.userMaximum; + +// if (data.length > 0) { +// require(uint8(bytes1(data[0:1])) == PER_USER_PURCHASE_LIMIT, "unknown data"); +// require(data.length == 33, "data length != 33 bytes"); +// userLimit = uint256(bytes32(data[1:33])); +// } + +// require( +// baseCurrencyQuantity + metrics.buyerTotal[_msgSender()] <= userLimit, +// "purchase exceeds your limit" +// ); + +// require( +// baseCurrencyQuantity + metrics.purchaseTotal <= config.saleMaximum, +// "purchase exceeds sale limit" +// ); + +// require( +// baseCurrencyQuantity >= config.purchaseMinimum, +// "purchase under minimum" +// ); + +// // Effects +// metrics.purchaseCount += 1; +// if (metrics.buyerTotal[_msgSender()] == 0) { +// // if no prior purchases, this is a new buyer +// metrics.buyerCount += 1; +// } +// metrics.purchaseTotal += baseCurrencyQuantity; +// metrics.buyerTotal[_msgSender()] += baseCurrencyQuantity; +// } + +// /** +// Settle payment made with payment token +// Important: this function has no checks! Only call if the purchase is valid! +// */ +// function _settlePaymentToken(uint256 baseCurrencyValue, IERC20Upgradeable token, uint256 quantity) internal { +// uint256 fee = 0; +// if (feeBips > 0) { +// fee = (quantity * feeBips) / fractionDenominator; +// token.safeTransferFrom(_msgSender(), feeRecipient, fee); +// } +// token.safeTransferFrom(_msgSender(), address(this), quantity - fee); +// emit Buy(_msgSender(), address(token), baseCurrencyValue, quantity, fee); +// } + +// /** +// Settle payment made with native token +// Important: this function has no checks! Only call if the purchase is valid! +// */ +// function _settleNativeToken(uint256 baseCurrencyValue, uint256 nativeTokenQuantity) internal { +// uint256 nativeFee = 0; +// if (feeBips > 0) { +// nativeFee = (nativeTokenQuantity * feeBips) / fractionDenominator; +// _asyncTransfer(feeRecipient, nativeFee); +// } +// _asyncTransfer(config.recipient, nativeFee); +// // This contract will hold the native token until claimed by the owner +// emit Buy(_msgSender(), address(0), baseCurrencyValue, nativeTokenQuantity, nativeFee); +// } + +// /** +// Pay with the payment token (e.g. USDC) +// */ +// function buyWithToken( +// IERC20Upgradeable token, +// uint256 quantity, +// bytes calldata data, +// bytes32[] calldata proof +// ) external override canAccessSale(data, proof) validPaymentToken(token) nonReentrant { +// // convert to base currency from native tokens +// PaymentTokenInfo memory tokenInfo = paymentTokens[token]; +// uint256 baseCurrencyValue = tokensToBaseCurrency(quantity, tokenInfo.decimals, tokenInfo.oracle); +// // Checks and Effects +// _execute(baseCurrencyValue, data); +// // Interactions +// _settlePaymentToken(baseCurrencyValue, token, quantity); +// } + +// /** +// Pay with the native token (e.g. ETH) +// */ +// function buyWithNative( +// bytes calldata data, +// bytes32[] calldata proof +// ) external override payable canAccessSale(data, proof) areNativePaymentsEnabled nonReentrant { +// // convert to base currency from native tokens +// uint256 baseCurrencyValue = tokensToBaseCurrency(msg.value, NATIVE_TOKEN_DECIMALS, nativeTokenPriceOracle); +// // Checks and Effects +// _execute(baseCurrencyValue, data); +// // Interactions +// _settleNativeToken(baseCurrencyValue, msg.value); +// } + +// /** +// External management functions (only the owner may update the sale) +// */ +// function update(Config calldata _config) external validUpdate(_config) onlyOwner { +// config = _config; +// // updates always reset the random value +// randomValue = generatePseudorandomValue(config.merkleRoot); +// emit Update(config); +// } + +// // Tell users where they can claim tokens +// function registerDistributor(address _distributor) external onlyOwner { +// require(_distributor != address(0), "Distributor == address(0)"); +// distributor = _distributor; +// emit RegisterDistributor(distributor); +// } + +// /** +// Public management functions +// */ +// // Sweep an ERC20 token to the recipient (public function) +// function sweepToken(IERC20Upgradeable token) external { +// uint256 amount = token.balanceOf(address(this)); +// token.safeTransfer(config.recipient, amount); +// emit SweepToken(address(token), amount); +// } + +// // sweep native token to the recipient (public function) +// function sweepNative() external { +// uint256 amount = address(this).balance; +// (bool success, ) = config.recipient.call{value: amount}(""); +// require(success, "Transfer failed."); +// emit SweepNative(amount); +// } +// } diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSale.sol b/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSale.sol new file mode 100644 index 00000000..84e2f011 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSale.sol @@ -0,0 +1,575 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; +// pragma abicoder v2; + +import "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/security/PullPaymentUpgradeable.sol"; +import "./Sale.sol"; +import "../../interfaces/IOracleOrL2OracleWithSequencerCheck.sol"; +/** +Allow qualified users to participate in a sale according to sale rules. + +Management +- the address that deploys the sale is the sale owner +- owners may change some sale parameters (e.g. start and end times) +- sale proceeds are sent to the sale recipient + +Qualification +- public sale: anyone can participate +- private sale: only users who can prove membership in a merkle tree can participate + +Sale Rules +- timing: purchases can only be made + - after the sale opens + - after the per-account random queue time has elapsed + - before the sale ends +- purchase quantity: quantity is limited by + - per-address limit + - total sale limit +- payment method: participants can pay using either + - the native token on the network (e.g. ETH) + - a single ERC-20 token (e.g. USDC) +- number of purchases: there is no limit to the number of compliant purchases a user may make + +Token Distribution +- this contract does not distribute any purchased tokens + +Metrics +- purchase count: number of purchases made in this sale +- user count: number of unique addresses that participated in this sale +- total bought: value of purchases denominated in a base currency (e.g. USD) as an integer (to get the float value, divide by oracle decimals) +- bought per user: value of a user's purchases denominated in a base currency (e.g. USD) + +total bought and bought per user metrics are inclusive of any fee charged (if a fee is charged, the sale recipient will receive less than the total spend) +*/ + +// Sale can only be updated post-initialization by the contract owner! +struct Config { + // the address that will receive sale proceeds (tokens and native) minus any fees sent to the fee recipient + address payable recipient; + // the merkle root used for proving access + bytes32 merkleRoot; + // max that can be spent in the sale in the base currency + uint256 saleMaximum; + // max that can be spent per user in the base currency + uint256 userMaximum; + // minimum that can be bought in a specific purchase + uint256 purchaseMinimum; + // the time at which the sale starts (users will have an additional random delay if maxQueueTime is set) + uint256 startTime; + // the time at which the sale will end, regardless of tokens raised + uint256 endTime; + // what is the maximum length of time a user could wait in the queue after the sale starts? + uint256 maxQueueTime; + // a link to off-chain information about this sale + string URI; +} + +// Metrics are only updated by the buyWithToken() and buyWithNative() functions +struct Metrics { + // number of purchases + uint256 purchaseCount; + // number of buyers + uint256 buyerCount; + // amount bought denominated in a base currency + uint256 purchaseTotal; + // amount bought for each user denominated in a base currency + mapping(address => uint256) buyerTotal; +} + +struct PaymentTokenInfo { + IOracleOrL2OracleWithSequencerCheck oracle; + uint8 decimals; +} + +contract FlatPriceSale_v_2_1 is Sale, PullPaymentUpgradeable { + using SafeERC20Upgradeable for IERC20Upgradeable; + + event ImplementationConstructor(address payable indexed feeRecipient, uint256 feeBips); + event Update(Config config); + event Initialize( + Config config, + string baseCurrency, + IOracleOrL2OracleWithSequencerCheck nativeOracle, + bool nativePaymentsEnabled + ); + event SetPaymentTokenInfo(IERC20Upgradeable token, PaymentTokenInfo paymentTokenInfo); + event SweepToken(address indexed token, uint256 amount); + event SweepNative(uint256 amount); + event RegisterDistributor(address distributor); + + // All supported chains must use 18 decimals (e.g. 1e18 wei / eth) + uint256 internal constant NATIVE_TOKEN_DECIMALS = 18; + + // flag for additional merkle root data + uint8 internal constant PER_USER_PURCHASE_LIMIT = 1; + uint8 internal constant PER_USER_END_TIME = 2; + + /** + Variables set by implementation contract constructor (immutable) + */ + + // a fee may be charged by the sale manager + uint256 immutable feeBips; + uint256 constant fractionDenominator = 10000; + + // the recipient of the fee + address payable immutable feeRecipient; + + // an optional address where buyers can receive distributed tokens + address distributor; + + /** + Variables set during initialization of clone contracts ("immutable" on each instance) + */ + + // the base currency being used, e.g. 'USD' + string public baseCurrency; + + string public constant VERSION = "2.2"; + + // / price, e.g. ETH/USD price + IOracleOrL2OracleWithSequencerCheck public nativeTokenPriceOracle; + + // whether native payments are enabled (set during intialization) + bool nativePaymentsEnabled; + + // / price oracles, eg USDC address => ETH/USDC price + mapping(IERC20Upgradeable => PaymentTokenInfo) public paymentTokens; + + // owner can update these + Config public config; + + // derived from payments + Metrics public metrics; + + // reasonably random value: xor of merkle root and blockhash for transaction setting merkle root + uint160 internal randomValue; + + // All clones will share the information in the implementation constructor + constructor(uint256 _feeBips, address payable _feeRecipient) { + if (_feeBips > 0) { + require(_feeRecipient != address(0), "feeRecipient == 0"); + } + feeRecipient = _feeRecipient; + feeBips = _feeBips; + + emit ImplementationConstructor(feeRecipient, feeBips); + } + + /** + Replacement for constructor for clones of the implementation contract + Important: anyone can call the initialize function! + */ + function initialize( + address _owner, + Config calldata _config, + string calldata _baseCurrency, + bool _nativePaymentsEnabled, + IOracleOrL2OracleWithSequencerCheck _nativeTokenPriceOracle, + IERC20Upgradeable[] calldata tokens, + IOracleOrL2OracleWithSequencerCheck[] calldata oracles, + uint8[] calldata decimals + ) public initializer validUpdate(_config) { + // initialize the PullPayment escrow contract + __PullPayment_init(); + + // validate the new sale + require(tokens.length == oracles.length, "token and oracle lengths !="); + require(tokens.length == decimals.length, "token and decimals lengths !="); + require(address(_nativeTokenPriceOracle) != address(0), "native oracle == 0"); + + // save the new sale + config = _config; + + // save payment config + baseCurrency = _baseCurrency; + nativeTokenPriceOracle = _nativeTokenPriceOracle; + nativePaymentsEnabled = _nativePaymentsEnabled; + emit Initialize(config, baseCurrency, nativeTokenPriceOracle, _nativePaymentsEnabled); + + for (uint256 i = 0; i < tokens.length; i++) { + // double check that tokens and oracles are real addresses + require(address(tokens[i]) != address(0), "payment token == 0"); + require(address(oracles[i]) != address(0), "token oracle == 0"); + // save the payment token info + paymentTokens[tokens[i]] = PaymentTokenInfo({ oracle: oracles[i], decimals: decimals[i] }); + + emit SetPaymentTokenInfo(tokens[i], paymentTokens[tokens[i]]); + } + + // Set the random value for the fair queue time + randomValue = generatePseudorandomValue(config.merkleRoot); + + // transfer ownership to the user initializing the sale + _transferOwnership(_owner); + } + + /** + Check that the user can currently participate in the sale based on the merkle root + + Merkle root options: + - bytes32(0): this is a public sale, any address can participate + - otherwise: this is a private sale, users must submit a merkle proof that their address is included in the merkle root + */ + modifier canAccessSale(bytes calldata data, bytes32[] calldata proof) { + // make sure the buyer is an EOA + // TODO: Review this check for meta-transactions + require((_msgSender() == tx.origin), "Must buy with an EOA"); + + // If the merkle root is non-zero this is a private sale and requires a valid proof + if (config.merkleRoot == bytes32(0)) { + // this is a public sale + // IMPORTANT: data is only validated if the merkle root is checked! Public sales do not check any merkle roots! + require(data.length == 0, "data not permitted on public sale"); + } else { + // this is a private sale + require( + this.isValidMerkleProof(config.merkleRoot, _msgSender(), data, proof) == true, + "bad merkle proof for sale" + ); + } + + // Require the sale to be open + require(block.timestamp > config.startTime, "sale has not started yet"); + require(block.timestamp < config.endTime, "sale has ended"); + require(metrics.purchaseTotal < config.saleMaximum, "sale buy limit reached"); + + // Reduce congestion by randomly assigning each user a delay time in a virtual queue based on comparing their address and a random value + // if config.maxQueueTime == 0 the delay is 0 + require( + block.timestamp - config.startTime > getFairQueueTime(_msgSender()), + "not your turn yet" + ); + _; + } + + /** + Check that the new sale is a valid update + - If the config already exists, it must not be over (cannot edit sale after it concludes) + - Sale start, end, and max queue times must be consistent and not too far in the future + */ + modifier validUpdate(Config calldata newConfig) { + // get the existing config + Config memory oldConfig = config; + + /** + - @notice - Block updates after sale is over + - @dev - Since validUpdate is called by initialize(), we can have a new + - sale here, identifiable by default randomValue of 0 + */ + if (randomValue != 0) { + // this is an existing sale: cannot update after it has ended + require(block.timestamp < oldConfig.endTime, "sale is over: cannot upate"); + if (block.timestamp > oldConfig.startTime) { + // the sale has already started, some things should not be edited + require( + oldConfig.saleMaximum == newConfig.saleMaximum, + "editing saleMaximum after sale start" + ); + } + } + + // the total sale limit must be at least as large as the per-user limit + + // all required values must be present and reasonable + // check if the caller accidentally entered a value in milliseconds instead of seconds + require(newConfig.startTime <= 4102444800, "start > 4102444800 (Jan 1 2100)"); + require(newConfig.endTime <= 4102444800, "end > 4102444800 (Jan 1 2100)"); + require(newConfig.maxQueueTime <= 604800, "max queue time > 604800 (1 week)"); + require(newConfig.recipient != address(0), "recipient == address(0)"); + + // sale, user, and purchase limits must be compatible + require(newConfig.saleMaximum > 0, "saleMaximum == 0"); + require(newConfig.userMaximum > 0, "userMaximum == 0"); + require(newConfig.userMaximum <= newConfig.saleMaximum, "userMaximum > saleMaximum"); + require(newConfig.purchaseMinimum <= newConfig.userMaximum, "purchaseMinimum > userMaximum"); + + // new sale times must be internally consistent + require( + newConfig.startTime + newConfig.maxQueueTime < newConfig.endTime, + "sale must be open for at least maxQueueTime" + ); + + _; + } + + modifier validPaymentToken(IERC20Upgradeable token) { + // check that this token is configured as a payment method + PaymentTokenInfo memory info = paymentTokens[token]; + require(address(info.oracle) != address(0), "invalid payment token"); + + _; + } + + modifier areNativePaymentsEnabled() { + require(nativePaymentsEnabled, "native payments disabled"); + + _; + } + + // Get info on a payment token + function getPaymentToken(IERC20Upgradeable token) + external + view + returns (PaymentTokenInfo memory) + { + return paymentTokens[token]; + } + + // Get a positive token price from a chainlink oracle + function getOraclePrice(IOracleOrL2OracleWithSequencerCheck oracle) public view returns (uint256) { + ( + uint80 roundID, + int256 _price, + /* uint256 startedAt */, + uint256 timeStamp, + uint80 answeredInRound + ) = oracle.latestRoundData(); + + require(_price > 0, "negative price"); + require(answeredInRound > 0, "answer == 0"); + require(timeStamp > 0, "round not complete"); + require(answeredInRound >= roundID, "stale price"); + + return uint256(_price); + } + + /** + Generate a pseudorandom value + This is not a truly random value: + - miners can alter the block hash + - owners can repeatedly call setMerkleRoot() + - owners can choose when to submit the transaction + */ + function generatePseudorandomValue(bytes32 merkleRoot) public view returns (uint160) { + return uint160(uint256(blockhash(block.number - 1))) ^ uint160(uint256(merkleRoot)); + } + + /** + Get the delay in seconds that a specific buyer must wait after the sale begins in order to buy tokens in the sale + + Buyers cannot exploit the fair queue when: + - The sale is private (merkle root != bytes32(0)) + - Each eligible buyer gets exactly one address in the merkle root + + Although miners and sellers can minimize the delay for an arbitrary address, these are not significant threats: + - the economic opportunity to miners is zero or relatively small (only specific addresses can participate in private sales, and a better queue postion does not imply high returns) + - sellers can repeatedly set merkle roots to achieve a favorable queue time for any address, but sellers already control the tokens being sold! + */ + function getFairQueueTime(address buyer) public view returns (uint256) { + if (config.maxQueueTime == 0) { + // there is no delay: all addresses may participate immediately + return 0; + } + + // calculate a distance between the random value and the user's address using the XOR distance metric (c.f. Kademlia) + uint160 distance = uint160(buyer) ^ randomValue; + + // calculate a speed at which the queue is exhausted such that all users complete the queue by sale.maxQueueTime + uint160 distancePerSecond = type(uint160).max / uint160(config.maxQueueTime); + // return the delay (seconds) + return distance / distancePerSecond; + } + + /** + Convert a token quantity (e.g. USDC or ETH) to a base currency (e.g. USD) with the same number of decimals as the price oracle (e.g. 8) + + Example: given 2 NCT tokens, each worth $1.23, tokensToBaseCurrency should return 246000000 ($2.46) + + Function arguments + - tokenQuantity: 2000000000000000000 + - tokenDecimals: 18 + + NCT/USD chainlink oracle (important! the oracle must be / not /, e.g. ETH/USD, ~$2000 not USD/ETH, ~0.0005) + - baseCurrencyPerToken: 123000000 + - baseCurrencyDecimals: 8 + + Calculation: 2000000000000000000 * 123000000 / 1000000000000000000 + + Returns: 246000000 + */ + // function tokensToBaseCurrency(SafeERC20Upgradeable token, uint256 quantity) public view validPaymentToken(token) returns (uint256) { + // PaymentTokenInfo info = paymentTokens[token]; + // return quantity * getOraclePrice(info.oracle) / (10 ** info.decimals); + // } + function tokensToBaseCurrency( + uint256 tokenQuantity, + uint256 tokenDecimals, + IOracleOrL2OracleWithSequencerCheck oracle + ) public view returns (uint256 value) { + return (tokenQuantity * getOraclePrice(oracle)) / (10**tokenDecimals); + } + + function total() external view override returns (uint256) { + return metrics.purchaseTotal; + } + + function isOver() public view override returns (bool) { + return config.endTime <= block.timestamp || metrics.purchaseTotal >= config.saleMaximum; + } + + function isOpen() public view override returns (bool) { + return + config.startTime < block.timestamp && + config.endTime > block.timestamp && + metrics.purchaseTotal < config.saleMaximum; + } + + // return the amount bought by this user in base currency + function buyerTotal(address user) external view override returns (uint256) { + return metrics.buyerTotal[user]; + } + + /** + Records a purchase + Follow the Checks -> Effects -> Interactions pattern + * Checks: CALLER MUST ENSURE BUYER IS PERMITTED TO PARTICIPATE IN THIS SALE: THIS METHOD DOES NOT CHECK WHETHER THE BUYER SHOULD BE ABLE TO ACCESS THE SALE! + * Effects: record the payment + * Interactions: none! + */ + function _execute(uint256 baseCurrencyQuantity, bytes calldata data) internal { + // Checks + uint256 userLimit = config.userMaximum; + + if (data.length > 0) { + require(uint8(bytes1(data[0:1])) == PER_USER_PURCHASE_LIMIT, "unknown data"); + require(data.length == 33, "data length != 33 bytes"); + userLimit = uint256(bytes32(data[1:33])); + } + + require( + baseCurrencyQuantity + metrics.buyerTotal[_msgSender()] <= userLimit, + "purchase exceeds your limit" + ); + + require( + baseCurrencyQuantity + metrics.purchaseTotal <= config.saleMaximum, + "purchase exceeds sale limit" + ); + + require(baseCurrencyQuantity >= config.purchaseMinimum, "purchase under minimum"); + + // Effects + metrics.purchaseCount += 1; + if (metrics.buyerTotal[_msgSender()] == 0) { + // if no prior purchases, this is a new buyer + metrics.buyerCount += 1; + } + metrics.purchaseTotal += baseCurrencyQuantity; + metrics.buyerTotal[_msgSender()] += baseCurrencyQuantity; + } + + /** + Settle payment made with payment token + Important: this function has no checks! Only call if the purchase is valid! + */ + function _settlePaymentToken( + uint256 baseCurrencyValue, + IERC20Upgradeable token, + uint256 quantity + ) internal { + uint256 fee = 0; + if (feeBips > 0) { + fee = (quantity * feeBips) / fractionDenominator; + token.safeTransferFrom(_msgSender(), feeRecipient, fee); + } + token.safeTransferFrom(_msgSender(), address(this), quantity - fee); + emit Buy(_msgSender(), address(token), baseCurrencyValue, quantity, fee); + } + + /** + Settle payment made with native token + Important: this function has no checks! Only call if the purchase is valid! + */ + function _settleNativeToken(uint256 baseCurrencyValue, uint256 nativeTokenQuantity) internal { + uint256 nativeFee = 0; + if (feeBips > 0) { + nativeFee = (nativeTokenQuantity * feeBips) / fractionDenominator; + _asyncTransfer(feeRecipient, nativeFee); + } + _asyncTransfer(config.recipient, nativeTokenQuantity - nativeFee); + // This contract will hold the native token until claimed by the owner + emit Buy(_msgSender(), address(0), baseCurrencyValue, nativeTokenQuantity, nativeFee); + } + + /** + Pay with the payment token (e.g. USDC) + */ + function buyWithToken( + IERC20Upgradeable token, + uint256 quantity, + bytes calldata data, + bytes32[] calldata proof + ) external override canAccessSale(data, proof) validPaymentToken(token) nonReentrant { + // convert to base currency from native tokens + PaymentTokenInfo memory tokenInfo = paymentTokens[token]; + uint256 baseCurrencyValue = tokensToBaseCurrency( + quantity, + tokenInfo.decimals, + tokenInfo.oracle + ); + // Checks and Effects + _execute(baseCurrencyValue, data); + // Interactions + _settlePaymentToken(baseCurrencyValue, token, quantity); + } + + /** + Pay with the native token (e.g. ETH) + */ + function buyWithNative(bytes calldata data, bytes32[] calldata proof) + external + payable + override + canAccessSale(data, proof) + areNativePaymentsEnabled + nonReentrant + { + // convert to base currency from native tokens + uint256 baseCurrencyValue = tokensToBaseCurrency( + msg.value, + NATIVE_TOKEN_DECIMALS, + nativeTokenPriceOracle + ); + // Checks and Effects + _execute(baseCurrencyValue, data); + // Interactions + _settleNativeToken(baseCurrencyValue, msg.value); + } + + /** + External management functions (only the owner may update the sale) + */ + function update(Config calldata _config) external validUpdate(_config) onlyOwner { + config = _config; + // updates always reset the random value + randomValue = generatePseudorandomValue(config.merkleRoot); + emit Update(config); + } + + // Tell users where they can claim tokens + function registerDistributor(address _distributor) external onlyOwner { + require(_distributor != address(0), "Distributor == address(0)"); + distributor = _distributor; + emit RegisterDistributor(distributor); + } + + /** + Public management functions + */ + // Sweep an ERC20 token to the recipient (public function) + function sweepToken(IERC20Upgradeable token) external { + uint256 amount = token.balanceOf(address(this)); + token.safeTransfer(config.recipient, amount); + emit SweepToken(address(token), amount); + } + + // sweep native token to the recipient (public function) + function sweepNative() external { + uint256 amount = address(this).balance; + (bool success, ) = config.recipient.call{ value: amount }(""); + require(success, "Transfer failed."); + emit SweepNative(amount); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol b/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol new file mode 100644 index 00000000..aad53175 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: MIT +pragma solidity =0.8.17; + +import "@openzeppelin/contracts/proxy/Clones.sol"; +import "./FlatPriceSale.sol"; + +contract FlatPriceSaleFactory_v_2_1 { + address public immutable implementation; + string public constant VERSION = "2.0"; + + event NewSale( + address indexed implementation, + FlatPriceSale_v_2_1 indexed clone, + Config config, + string baseCurrency, + IOracleOrL2OracleWithSequencerCheck nativeOracle, + bool nativePaymentsEnabled + ); + + constructor(address _implementation) { + implementation = _implementation; + } + + function newSale( + address _owner, + Config calldata _config, + string calldata _baseCurrency, + bool _nativePaymentsEnabled, + IOracleOrL2OracleWithSequencerCheck _nativeTokenPriceOracle, + IERC20Upgradeable[] calldata tokens, + IOracleOrL2OracleWithSequencerCheck[] calldata oracles, + uint8[] calldata decimals + ) external returns (FlatPriceSale_v_2_1 sale) { + sale = FlatPriceSale_v_2_1(Clones.clone(address(implementation))); + + emit NewSale( + implementation, + sale, + _config, + _baseCurrency, + _nativeTokenPriceOracle, + _nativePaymentsEnabled + ); + + sale.initialize( + _owner, + _config, + _baseCurrency, + _nativePaymentsEnabled, + _nativeTokenPriceOracle, + tokens, + oracles, + decimals + ); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/Sale.sol b/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/Sale.sol new file mode 100644 index 00000000..ff270cda --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/Sale.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/utils/cryptography/MerkleProofUpgradeable.sol"; + +// Upgradeable contracts are required to use clone() in SaleFactory +abstract contract Sale is ReentrancyGuardUpgradeable, OwnableUpgradeable { + using SafeERC20Upgradeable for IERC20Upgradeable; + event Buy( + address indexed buyer, + address indexed token, + uint256 baseCurrencyValue, + uint256 tokenValue, + uint256 tokenFee + ); + + /** + Important: the constructor is only called once on the implementation contract (which is never initialized) + Clones using this implementation cannot use this constructor method. + Thus every clone must use the same fields stored in the constructor (feeBips, feeRecipient) + */ + + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); + } + + // is this user permitted to access a sale? + function isValidMerkleProof( + bytes32 root, + address account, + bytes calldata data, + bytes32[] calldata proof + ) public pure returns (bool) { + // check if the account is in the merkle tree + bytes32 leaf = keccak256(abi.encodePacked(account, data)); + if (MerkleProofUpgradeable.verify(proof, root, leaf)) { + return true; + } + return false; + } + + function buyWithToken( + IERC20Upgradeable token, + uint256 quantity, + bytes calldata data, + bytes32[] calldata proof + ) external virtual {} + + function buyWithNative(bytes calldata data, bytes32[] calldata proof) external payable virtual {} + + function isOpen() public view virtual returns (bool) {} + + function isOver() public view virtual returns (bool) {} + + function buyerTotal(address user) external view virtual returns (uint256) {} + + function total() external view virtual returns (uint256) {} +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/token/ERC20.sol b/packages/hardhat/zksync-hardhat/contracts/ts/token/ERC20.sol new file mode 100644 index 00000000..0200b830 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/token/ERC20.sol @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: MIT +pragma solidity =0.8.17; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract GenericERC20 is ERC20 { + uint8 d; + + constructor( + string memory _name, + string memory _symbol, + uint8 _decimals, + uint256 supply + ) ERC20(_name, _symbol) { + d = _decimals; + _mint(msg.sender, supply); + } + + function decimals() public view virtual override returns (uint8) { + return d; + } +} + +contract FakeUSDC is ERC20 { + uint8 d; + + constructor( + string memory _name, + string memory _symbol, + uint8 _decimals, + uint256 supply + ) ERC20(_name, _symbol) { + d = _decimals; + _mint(msg.sender, supply); + } + + function decimals() public view virtual override returns (uint8) { + return d; + } +} + +contract FakeUSDT is ERC20 { + uint8 d; + + constructor( + string memory _name, + string memory _symbol, + uint8 _decimals, + uint256 supply + ) ERC20(_name, _symbol) { + d = _decimals; + _mint(msg.sender, supply); + } + + function decimals() public view virtual override returns (uint8) { + return d; + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/token/ERC20Votes.sol b/packages/hardhat/zksync-hardhat/contracts/ts/token/ERC20Votes.sol new file mode 100644 index 00000000..24c17410 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/token/ERC20Votes.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol"; +import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol"; + +contract MyERC20Votes is ERC20, ERC20Permit, ERC20Votes { + constructor( + string memory _name, + string memory _symbol, + uint256 supply + ) ERC20(_name, _symbol) ERC20Permit(_name) { + _mint(msg.sender, supply); + } + + // The following functions are overrides required by Solidity. + + function _afterTokenTransfer( + address from, + address to, + uint256 amount + ) internal override(ERC20, ERC20Votes) { + super._afterTokenTransfer(from, to, amount); + } + + function _mint(address to, uint256 amount) internal override(ERC20, ERC20Votes) { + super._mint(to, amount); + } + + function _burn(address account, uint256 amount) internal override(ERC20, ERC20Votes) { + super._burn(account, amount); + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/utilities/FairQueue.sol b/packages/hardhat/zksync-hardhat/contracts/ts/utilities/FairQueue.sol new file mode 100644 index 00000000..7ab8330a --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/utilities/FairQueue.sol @@ -0,0 +1,78 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +/** + * @title FairQueue + * @notice Fairly assigns a delay time to each address from a uniform distribution over [0, maxDelayTime] + * @dev The delay is determined by calculating a distance between the user's address and a pseudorandom value based on a provided salt and a blockhash + * using the XOR distance metric. Do not use this contract if the event is public because users could grind addresses until they find one with a low delay. + */ +contract FairQueue { + event SetDelay(uint160 maxDelayTime); + /** + * calculate a speed at which the queue is exhausted such that all users complete the queue by maxDelayTime + */ + uint160 public distancePerSecond; + uint160 public maxDelayTime; + + /** + * @dev the random value from which a distance will be calculated for each address. Reset the random value + * to shuffle the delays for all addresses. + */ + uint160 public randomValue; + + constructor(uint160 _maxDelayTime, uint160 salt) { + _setDelay(_maxDelayTime); + _setPseudorandomValue(salt); + } + + /** + * @dev internal function to set the random value. A salt (e.g. from a merkle root) is required to prevent + * naive manipulation of the random value by validators + */ + function _setPseudorandomValue(uint160 salt) internal { + if (distancePerSecond == 0) { + // there is no delay: random value is not needed + return; + } + require(salt > 0, 'I demand more randomness'); + randomValue = uint160(uint256(blockhash(block.number - 1))) ^ salt; + } + + /** + @dev Internal function to configure delay + @param _maxDelayTime the maximum delay for any address in seconds. Set this value to 0 to disable delays entirely. + */ + function _setDelay(uint160 _maxDelayTime) internal { + maxDelayTime = _maxDelayTime; + distancePerSecond = _maxDelayTime > 0 ? type(uint160).max / _maxDelayTime : 0; + emit SetDelay(_maxDelayTime); + } + + /** + @notice get a fixed delay for any address by drawing from a unform distribution over the interval [0, maxDelay] + @param user The address for which a delay should be calculated. The delay is deterministic for any given address and pseudorandom value. + @dev The delay is determined by calculating a distance between the user's address and a pseudorandom value using the XOR distance metric (c.f. Kademlia) + + Users cannot exploit the fair delay if: + - The event is private, i.e. an access list of some form is required + - Each eligible user gets exactly one address in the access list + - There is no collusion between event participants, block validators, and event owners + + The threat of collusion is likely minimal: + - the economic opportunity to validators is zero or relatively small (only specific addresses can participate in private events, and a lower delay time does not imply higher returns) + - event owners are usually trying to achieve a fair distribution of access to their event + */ + function getFairDelayTime(address user) public view returns (uint256) { + if (distancePerSecond == 0) { + // there is no delay: all addresses may participate immediately + return 0; + } + + // calculate a distance between the random value and the user's address using the XOR distance metric (c.f. Kademlia) + uint160 distance = uint160(user) ^ randomValue; + + // return the delay (seconds) + return distance / distancePerSecond; + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/utilities/Registry.sol b/packages/hardhat/zksync-hardhat/contracts/ts/utilities/Registry.sol new file mode 100644 index 00000000..1829a4c3 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/utilities/Registry.sol @@ -0,0 +1,63 @@ +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/access/AccessControl.sol"; + +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +contract Registry is AccessControl, Ownable { + event DeployRegistry(); + event Register(address indexed addressRegistered, bytes4[] interfaceIds, address registeredBy); + event Unregister( + address indexed addressUnregistered, + bytes4[] interfaceIds, + address unregisteredBy + ); + + bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE"); + + // contract address => interface id => supported boolean + mapping(address => mapping(bytes4 => bool)) private interfaces; + + constructor() Ownable() { + emit DeployRegistry(); + } + + function addAdmin(address admin) public onlyOwner { + _grantRole(ADMIN_ROLE, admin); + } + + function removeAdmin(address admin) public onlyOwner { + _revokeRole(ADMIN_ROLE, admin); + } + + function register(address addressRegistered, bytes4[] calldata interfaceIds) + public + onlyRole(ADMIN_ROLE) + { + for (uint256 i = interfaceIds.length; i != 0; ) { + interfaces[addressRegistered][interfaceIds[i - 1]] = true; + unchecked { + --i; + } + } + + emit Register(addressRegistered, interfaceIds, msg.sender); + } + + function unregister(address addressUnregistered, bytes4[] calldata interfaceIds) + public + onlyRole(ADMIN_ROLE) + { + for (uint256 i = interfaceIds.length; i != 0; ) { + interfaces[addressUnregistered][interfaceIds[i - 1]] = false; + unchecked { + --i; + } + } + emit Unregister(addressUnregistered, interfaceIds, msg.sender); + } + + function targetSupportsInterface(address target, bytes4 interfaceId) public view returns (bool) { + return interfaces[target][interfaceId]; + } +} diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/utilities/Sweepable.sol b/packages/hardhat/zksync-hardhat/contracts/ts/utilities/Sweepable.sol new file mode 100644 index 00000000..1169f55c --- /dev/null +++ b/packages/hardhat/zksync-hardhat/contracts/ts/utilities/Sweepable.sol @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; + +abstract contract Sweepable is Ownable { + using SafeERC20 for IERC20; + + event SetSweepRecipient(address recipient); + event SweepToken(address indexed token, uint256 amount); + event SweepNative(uint256 amount); + + address payable private recipient; + + constructor(address payable _recipient) { + _setSweepRecipient(_recipient); + } + + // Sweep an ERC20 token to the owner + function sweepToken(IERC20 token) external onlyOwner { + uint256 amount = token.balanceOf(address(this)); + token.safeTransfer(recipient, amount); + emit SweepToken(address(token), amount); + } + + function sweepToken(IERC20 token, uint256 amount) external onlyOwner { + token.safeTransfer(recipient, amount); + emit SweepToken(address(token), amount); + } + + // sweep native token to the recipient (public function) + function sweepNative() external onlyOwner { + uint256 amount = address(this).balance; + (bool success, ) = recipient.call{value: amount}(""); + require(success, "Transfer failed."); + emit SweepNative(amount); + } + + function sweepNative(uint256 amount) external onlyOwner { + (bool success, ) = recipient.call{value: amount}(""); + require(success, "Transfer failed."); + emit SweepNative(amount); + } + + function getSweepRecipient() public view returns (address payable) { + return recipient; + } + + function _setSweepRecipient(address payable _recipient) internal { + recipient = _recipient; + emit SetSweepRecipient(recipient); + } +} \ No newline at end of file diff --git a/packages/hardhat/zksync-hardhat/deploy/deploy.ts b/packages/hardhat/zksync-hardhat/deploy/deploy.ts new file mode 100644 index 00000000..7c03df2f --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deploy/deploy.ts @@ -0,0 +1,19 @@ +import { deployContract } from "./utils"; + +// An example of a basic deploy script +// It will deploy a Greeter contract to selected network +// as well as verify it on Block Explorer if possible for the network +export default async function () { + + const {contract, address, constructorArgs, fullContractSource} = await deployContract("TrancheVestingMerkleDistributor", []); + await deployContract("TrancheVestingMerkleDistributorFactory", [contract.target]) + + // const {contract, address, constructorArgs, fullContractSource} = await deployContract("ContinuousVestingMerkleDistributor", []); + // await deployContract("ContinuousVestingMerkleDistributorFactory", [contract.target]) + + // const {contract, address, constructorArgs, fullContractSource} = await deployContract("GenericERC20", ["jack", "jd", 18, "1000000000000000000000000000"]); + + // const {contract, address, constructorArgs, fullContractSource} = await deployContract("FlatPriceSale_v_2_1", [0, "0x0000000000000000000000000000000000000000"]); + // await deployContract("FlatPriceSaleFactory_v_2_1", [contract.target]) + +} diff --git a/packages/hardhat/zksync-hardhat/deploy/erc20/deploy.ts b/packages/hardhat/zksync-hardhat/deploy/erc20/deploy.ts new file mode 100644 index 00000000..f069ead1 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deploy/erc20/deploy.ts @@ -0,0 +1,10 @@ +import { deployContract } from "../utils"; + +// This script is used to deploy an ERC20 token contract +// as well as verify it on Block Explorer if possible for the network + +// Important: make sure to change contract name and symbol in contract source +// at contracts/erc20/MyERC20Token.sol +export default async function () { + await deployContract("MyERC20Token"); +} diff --git a/packages/hardhat/zksync-hardhat/deploy/interact.ts b/packages/hardhat/zksync-hardhat/deploy/interact.ts new file mode 100644 index 00000000..24ee3ae3 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deploy/interact.ts @@ -0,0 +1,36 @@ +import * as hre from "hardhat"; +import { getWallet } from "./utils"; +import { ethers } from "ethers"; + +// Address of the contract to interact with +const CONTRACT_ADDRESS = ""; +if (!CONTRACT_ADDRESS) throw "⛔️ Provide address of the contract to interact with!"; + +// An example of a script to interact with the contract +export default async function () { + console.log(`Running script to interact with contract ${CONTRACT_ADDRESS}`); + + // Load compiled contract info + const contractArtifact = await hre.artifacts.readArtifact("Greeter"); + + // Initialize contract instance for interaction + const contract = new ethers.Contract( + CONTRACT_ADDRESS, + contractArtifact.abi, + getWallet() // Interact with the contract on behalf of this wallet + ); + + // Run contract read function + const response = await contract.greet(); + console.log(`Current message is: ${response}`); + + // Run contract write function + const transaction = await contract.setGreeting("Hello people!"); + console.log(`Transaction hash of setting new message: ${transaction.hash}`); + + // Wait until transaction is processed + await transaction.wait(); + + // Read message after transaction + console.log(`The message now is: ${await contract.greet()}`); +} diff --git a/packages/hardhat/zksync-hardhat/deploy/nft/deploy.ts b/packages/hardhat/zksync-hardhat/deploy/nft/deploy.ts new file mode 100644 index 00000000..7b81c12b --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deploy/nft/deploy.ts @@ -0,0 +1,10 @@ +import { deployContract } from "../utils"; + +// This script is used to deploy an NFT contract +// as well as verify it on Block Explorer if possible for the network +export default async function () { + const name = "My new NFT"; + const symbol = "MYNFT"; + const baseTokenURI = "https://mybaseuri.com/token/"; + await deployContract("MyNFT", [name, symbol, baseTokenURI]); +} diff --git a/packages/hardhat/zksync-hardhat/deploy/utils.ts b/packages/hardhat/zksync-hardhat/deploy/utils.ts new file mode 100644 index 00000000..3550046e --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deploy/utils.ts @@ -0,0 +1,169 @@ +import { Provider, Wallet } from "zksync-ethers"; +import * as hre from "hardhat"; +import { Deployer } from "@matterlabs/hardhat-zksync"; +import dotenv from "dotenv"; +import { ethers } from "ethers"; + +import "@matterlabs/hardhat-zksync-node/dist/type-extensions"; +import "@matterlabs/hardhat-zksync-verify/dist/src/type-extensions"; + +// Load env file +dotenv.config(); + +export const getProvider = () => { + const rpcUrl = hre.network.config.url; + if (!rpcUrl) throw `⛔️ RPC URL wasn't found in "${hre.network.name}"! Please add a "url" field to the network config in hardhat.config.ts`; + + // Initialize zkSync Provider + const provider = new Provider(rpcUrl); + + return provider; +} + +export const getWallet = (privateKey?: string) => { + if (!privateKey) { + // Get wallet private key from .env file + if (!process.env.WALLET_PRIVATE_KEY) throw "⛔️ Wallet private key wasn't found in .env file!"; + } + + const provider = getProvider(); + + // Initialize zkSync Wallet + const wallet = new Wallet(privateKey ?? process.env.WALLET_PRIVATE_KEY!, provider); + + return wallet; +} + +export const verifyEnoughBalance = async (wallet: Wallet, amount: bigint) => { + // Check if the wallet has enough balance + const balance = await wallet.getBalance(); + if (balance < amount) throw `⛔️ Wallet balance is too low! Required ${ethers.formatEther(amount)} ETH, but current ${wallet.address} balance is ${ethers.formatEther(balance)} ETH`; +} + +/** + * @param {string} data.contract The contract's path and name. E.g., "contracts/Greeter.sol:Greeter" + */ +export const verifyContract = async (data: { + address: string, + contract: string, + constructorArguments: string, + bytecode: string +}) => { + const verificationRequestId: number = await hre.run("verify:verify", { + ...data, + noCompile: true, + }); + return verificationRequestId; +} + +type DeployContractOptions = { + /** + * If true, the deployment process will not print any logs + */ + silent?: boolean + /** + * If true, the contract will not be verified on Block Explorer + */ + noVerify?: boolean + /** + * If specified, the contract will be deployed using this wallet + */ + wallet?: Wallet +} +export const deployContract = async (contractArtifactName: string, constructorArguments?: any[], options?: DeployContractOptions) => { + const log = (message: string) => { + if (!options?.silent) console.log(message); + } + + log(`\nStarting deployment process of "${contractArtifactName}"...`); + + const wallet = options?.wallet ?? getWallet(); + const deployer = new Deployer(hre, wallet); + const artifact = await deployer.loadArtifact(contractArtifactName).catch((error) => { + if (error?.message?.includes(`Artifact for contract "${contractArtifactName}" not found.`)) { + console.error(error.message); + throw `⛔️ Please make sure you have compiled your contracts or specified the correct contract name!`; + } else { + console.log(error) + throw error; + } + }); + + // Estimate contract deployment fee + // const deploymentFee = await deployer.estimateDeployFee(artifact, constructorArguments || []); + // log(`Estimated deployment cost: ${ethers.formatEther(deploymentFee)} ETH`); + + // // Check if the wallet has enough balance + // await verifyEnoughBalance(wallet, deploymentFee); + + // Deploy the contract to zkSync + const contract = await deployer.deploy(artifact, constructorArguments, 'create'); + const address = await contract.getAddress(); + const constructorArgs = contract.interface.encodeDeploy(constructorArguments); + const fullContractSource = `${artifact.sourceName}:${artifact.contractName}`; + + // Display contract deployment info + log(`\n"${artifact.contractName}" was successfully deployed:`); + log(` - Contract address: ${address}`); + log(` - Contract source: ${fullContractSource}`); + log(` - Encoded constructor arguments: ${constructorArgs}\n`); + + if (!options?.noVerify && hre.network.config.verifyURL) { + log(`Requesting contract verification...`); + await verifyContract({ + address, + contract: fullContractSource, + constructorArguments: constructorArgs, + bytecode: artifact.bytecode, + }); + } + + return {contract, address, constructorArgs, fullContractSource}; +} + +/** + * Rich wallets can be used for testing purposes. + * Available on zkSync In-memory node and Dockerized node. + */ +export const LOCAL_RICH_WALLETS = [ + { + address: "0x36615Cf349d7F6344891B1e7CA7C72883F5dc049", + privateKey: "0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110" + }, + { + address: "0xa61464658AfeAf65CccaaFD3a512b69A83B77618", + privateKey: "0xac1e735be8536c6534bb4f17f06f6afc73b2b5ba84ac2cfb12f7461b20c0bbe3" + }, + { + address: "0x0D43eB5B8a47bA8900d84AA36656c92024e9772e", + privateKey: "0xd293c684d884d56f8d6abd64fc76757d3664904e309a0645baf8522ab6366d9e" + }, + { + address: "0xA13c10C0D5bd6f79041B9835c63f91de35A15883", + privateKey: "0x850683b40d4a740aa6e745f889a6fdc8327be76e122f5aba645a5b02d0248db8" + }, + { + address: "0x8002cD98Cfb563492A6fB3E7C8243b7B9Ad4cc92", + privateKey: "0xf12e28c0eb1ef4ff90478f6805b68d63737b7f33abfa091601140805da450d93" + }, + { + address: "0x4F9133D1d3F50011A6859807C837bdCB31Aaab13", + privateKey: "0xe667e57a9b8aaa6709e51ff7d093f1c5b73b63f9987e4ab4aa9a5c699e024ee8" + }, + { + address: "0xbd29A1B981925B94eEc5c4F1125AF02a2Ec4d1cA", + privateKey: "0x28a574ab2de8a00364d5dd4b07c4f2f574ef7fcc2a86a197f65abaec836d1959" + }, + { + address: "0xedB6F5B4aab3dD95C7806Af42881FF12BE7e9daa", + privateKey: "0x74d8b3a188f7260f67698eb44da07397a298df5427df681ef68c45b34b61f998" + }, + { + address: "0xe706e60ab5Dc512C36A4646D719b889F398cbBcB", + privateKey: "0xbe79721778b48bcc679b78edac0ce48306a8578186ffcb9f2ee455ae6efeace1" + }, + { + address: "0xE90E12261CCb0F3F7976Ae611A29e84a6A85f424", + privateKey: "0x3eb15da85647edd9a1159a4a13b9e7c56877c4eb33f614546d4db06a51868b1c" + } +] \ No newline at end of file diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/.chainId b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/.chainId new file mode 100644 index 00000000..6f7d0b04 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/.chainId @@ -0,0 +1 @@ +0x144 \ No newline at end of file diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/token/ERC20.sol/GenericERC20.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/token/ERC20.sol/GenericERC20.json new file mode 100644 index 00000000..4e365c5b --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/token/ERC20.sol/GenericERC20.json @@ -0,0 +1,318 @@ +{ + "sourceName": "contracts/ts/token/ERC20.sol", + "contractName": "GenericERC20", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" + }, + { + "internalType": "uint8", + "name": "_decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "supply", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x0001000000000002000a00000000000200000000000103550000008003000039000000400030043f000000000301001900000060033002700000012c033001970000000102200190000000310000c13d000000040230008c000003a00000413d000000000201043b000000e002200270000001370420009c0000010d0000a13d000001380420009c0000011e0000213d0000013c0420009c000001520000613d0000013d0420009c0000018a0000613d0000013e0120009c000003a00000c13d0000000001000416000000000101004b000003a00000c13d0000000403000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0610008c00000000060000190000000106002039000000000662013f0000000106600190000002530000c13d000000800010043f000000000505004b000002630000c13d000001000100008a000000000112016f000000a00010043f000000000104004b000000c001000039000000a001006039000002770000013d0000000002000416000000000202004b000003a00000c13d0000001f023000390000012d022001970000008002200039000000400020043f0000001f0230018f0000000504300272000000440000613d00000000050000190000000506500210000000000761034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b0000003c0000413d000000000502004b000000530000613d0000000504400210000000000141034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000800130008c000003a00000413d000000800400043d0000012e0140009c000003a00000213d0000001f014000390000012f02000041000000000531004b000000000500001900000000050280190000012f01100197000000000601004b00000000020080190000012f0110009c000000000205c019000000000102004b000003a00000c13d000000800140003900000000020104330000012e0120009c000002880000213d0000001f01200039000000200800008a000000000181016f0000003f01100039000000000181016f000000400900043d0000000005190019000000000195004b000000000100001900000001010040390000012e0650009c000002880000213d0000000101100190000002880000c13d0000008001300039000000400050043f000000000a290436000000a0044000390000000005420019000000000515004b000003a00000213d000000000502004b000000870000613d000000000500001900000000065a00190000000007450019000000000707043300000000007604350000002005500039000000000625004b000000800000413d000000000292001900000020022000390000000000020435000000a00400043d0000012e0240009c000003a00000213d0000001f024000390000012f05000041000000000332004b000000000300001900000000030580190000012f02200197000000000602004b00000000050080190000012f0220009c000000000503c019000000000205004b000003a00000c13d000000800240003900000000020204330000012e0320009c000002880000213d0000001f03200039000000000383016f0000003f03300039000000000383016f000000400700043d0000000003370019000000000573004b000000000500001900000001050040390000012e0630009c000002880000213d0000000105500190000002880000c13d000000400030043f0000000006270436000000a0034000390000000004320019000000000114004b000003a00000213d000000000102004b000000ba0000613d000000000100001900000000041600190000000005310019000000000505043300000000005404350000002001100039000000000421004b000000b30000413d000000000172001900000020011000390000000000010435000000c00400043d000000ff0140008c000003a00000213d000000e00300043d000000000b0904330000012e01b0009c000002880000213d0000000305000039000000000105041a000000010210019000000001011002700000007f0c10018f000000000c01c0190000001f01c0008c00000000010000190000000101002039000000000112004b000002530000c13d000a0000000b001d000900000005001d00050000000a001d000400000009001d000100000006001d000300000004001d000800000007001d000700000008001d000200000003001d00060000000c001d0000002001c0008c000000f80000413d000000090100002900000000001004350000012c0100004100000000020004140000012c0320009c0000000002018019000000c00120021000000130011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d0000000a030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000006010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000000f80000813d000000000002041b0000000102200039000000000312004b000000f40000413d0000000a010000290000001f0110008c000002bd0000a13d000000090100002900000000001004350000012c0100004100000000020004140000012c0320009c0000000002018019000000c00120021000000130011001c7000080100200003904ab04a60000040f00000001022001900000000702000029000003a00000613d0000000a03200180000000000101043b000002cb0000c13d0000002002000039000002d60000013d0000013f0420009c000001400000a13d000001400420009c000001990000613d000001410420009c000001a10000613d000001420120009c000003a00000c13d0000000001000416000000000101004b000003a00000c13d0000000501000039000000000101041a000000ff0110018f000000800010043f0000014601000041000004ac0001042e000001390420009c000001ea0000613d0000013a0420009c0000022e0000613d0000013b0220009c000003a00000c13d0000000002000416000000440330008c000003a00000413d000000000202004b000003a00000c13d0000000402100370000000000202043b000001450320009c000003a00000213d0000002401100370000000000301043b000001450130009c000003a00000213d00000000002004350000000101000039000000200010043f0000004002000039000a00000002001d0000000001000019000900000003001d04ab048b0000040f00000009020000290000000000200435000000200010043f00000000010000190000000a0200002904ab048b0000040f0000019d0000013d000001430420009c000002440000613d000001440220009c000003a00000c13d0000000002000416000000440330008c000003a00000413d000000000202004b000003a00000c13d0000000402100370000000000202043b000001450320009c000003a00000213d0000002401100370000000000301043b000000000100041104ab04310000040f0000023b0000013d0000000002000416000000440330008c000003a00000413d000000000202004b000003a00000c13d0000000401100370000000000101043b000a00000001001d000001450110009c000003a00000213d0000000001000411000800000001001d00000000001004350000000101000039000900000001001d000000200010043f0000012c0300004100000000010004140000012c0210009c0000000001038019000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d000000000101043b0000000a020000290000000000200435000000200010043f00000000010004140000012c0210009c0000012c01008041000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d000000000101043b000000000101041a00000024020000390000000002200367000000000202043b0000000003120019000000000123004b0000000001000019000000010100403900000001011001900000029e0000613d0000014d0100004100000000001004350000001101000039000000040010043f0000014e01000041000004ad000104300000000002000416000000240330008c000003a00000413d000000000202004b000003a00000c13d0000000401100370000000000101043b000001450210009c000003a00000213d0000000000100435000000200000043f0000004002000039000000000100001904ab048b0000040f0000019d0000013d0000000001000416000000000101004b000003a00000c13d0000000201000039000000000101041a000000800010043f0000014601000041000004ac0001042e0000000002000416000000640330008c000003a00000413d000000000202004b000003a00000c13d0000000402100370000000000302043b000001450230009c000003a00000213d0000002402100370000000000202043b000a00000002001d000001450220009c000003a00000213d0000004401100370000000000101043b000800000001001d00000000003004350000000101000039000700000001001d000000200010043f0000012c0400004100000000010004140000012c0210009c0000000001048019000000c00110021000000131011001c70000801002000039000900000003001d04ab04a60000040f0000000102200190000003a00000613d000000000101043b0000000002000411000600000002001d0000000000200435000000200010043f00000000010004140000012c0210009c0000012c01008041000000c00110021000000131011001c7000080100200003904ab04a60000040f00000009040000290000000102200190000003a00000613d000000000101043b000000000101041a000000010200008a000000000221004b000002b00000613d0000000803000029000000000231004b000002ab0000813d000000400100043d00000044021000390000014f03000041000000000032043500000024021000390000001d030000390000000000320435000001350200004100000000002104350000000402100039000000200300003900000000003204350000012c020000410000012c0310009c0000000001028019000000400110021000000136011001c7000004ad000104300000000002000416000000440330008c000003a00000413d000000000202004b000003a00000c13d0000000402100370000000000202043b000a00000002001d000001450220009c000003a00000213d0000002401100370000000000101043b000900000001001d0000000001000411000700000001001d00000000001004350000000101000039000800000001001d000000200010043f0000012c0300004100000000010004140000012c0210009c0000000001038019000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d000000000101043b0000000a020000290000000000200435000000200010043f00000000010004140000012c0210009c0000012c01008041000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d000000000101043b000000000101041a0000000903000029000000000231004b000002a40000813d000000400100043d000000640210003900000148030000410000000000320435000000440210003900000149030000410000000000320435000000240210003900000025030000390000000000320435000001350200004100000000002104350000000402100039000000200300003900000000003204350000012c020000410000012c0310009c000000000102801900000040011002100000014a011001c7000004ad000104300000000002000416000000440330008c000003a00000413d000000000202004b000003a00000c13d0000000402100370000000000202043b000001450320009c000003a00000213d0000002401100370000000000301043b000000000100041104ab03b80000040f0000000101000039000000400200043d00000000001204350000012c010000410000012c0320009c0000000002018019000000400120021000000147011001c7000004ac0001042e0000000001000416000000000101004b000003a00000c13d0000000303000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0610008c00000000060000190000000106002039000000000662013f0000000106600190000002590000613d0000014d0100004100000000001004350000002201000039000000040010043f0000014e01000041000004ad00010430000000800010043f000000000505004b000002670000c13d000001000100008a000000000112016f000000a00010043f000000000104004b000000c001000039000000a001006039000002830000013d0000000000300435000000020220008c0000026c0000813d0000026a0000013d0000000000300435000000020220008c000002780000813d00000020010000390000028e0000013d0000014b0200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b0000026e0000413d000000c001300039000002830000013d000001500200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b0000027a0000413d000000c001300039000000610110008a000000200200008a000000000121016f0000014c0210009c0000028e0000a13d0000014d0100004100000000001004350000004101000039000000040010043f0000014e01000041000004ad000104300000008001100039000a00000001001d000000400010043f000000800200003904ab03a20000040f0000000a0400002900000000014100490000012c020000410000012c0310009c00000000010280190000012c0340009c000000000402801900000040024002100000006001100210000000000121019f000004ac0001042e00000008010000290000000a0200002904ab04310000040f000000400100043d0000000902000029000002b60000013d000000000331004900000007010000290000000a0200002904ab04310000040f000000400100043d0000000802000029000002b60000013d00000000033100490000000001040019000000060200002904ab04310000040f000000090400002900000000010400190000000a02000029000000080300002904ab03b80000040f000000400100043d000000070200002900000000002104350000012c020000410000012c0310009c0000000001028019000000400110021000000147011001c7000004ac0001042e0000000a0100006b0000000001000019000002c20000613d000000050100002900000000010104330000000a040000290000000302400210000000010300008a000000000223022f000000000232013f000000000121016f0000000102400210000000000121019f000002e50000013d00000020020000390000000004000019000000040600002900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000002ce0000413d0000000a0330006c000002e20000813d0000000a030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f00000004022000290000000002020433000000000232016f000000000021041b0000000a01000029000000010110021000000001011001bf0000000902000029000000000012041b00000008010000290000000001010433000a00000001001d0000012e0110009c000002880000213d0000000401000039000900000001001d000000000101041a000000010210019000000001021002700000007f0320018f000000000302c019000600000003001d0000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000002530000c13d0000000601000029000000200110008c0000031a0000413d000000090100002900000000001004350000012c0100004100000000020004140000012c0320009c0000000002018019000000c00120021000000130011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d0000000a030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000006010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000031a0000813d000000000002041b0000000102200039000000000312004b000003160000413d0000000a010000290000001f0110008c0000032f0000a13d000000090100002900000000001004350000012c0100004100000000020004140000012c0320009c0000000002018019000000c00120021000000130011001c7000080100200003904ab04a60000040f00000001022001900000000702000029000003a00000613d0000000a03200180000000000101043b0000033d0000c13d0000002002000039000003480000013d0000000a0100006b0000000001000019000003340000613d000000010100002900000000010104330000000a040000290000000302400210000000010300008a000000000223022f000000000232013f000000000121016f0000000102400210000000000121019f000003570000013d00000020020000390000000004000019000000080600002900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000003400000413d0000000a0330006c000003540000813d0000000a030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f00000008022000290000000002020433000000000232016f000000000021041b0000000a01000029000000010110021000000001011001bf0000000302000029000000ff0220018f0000000903000029000000000013041b0000000501000039000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000001000411000a00000001001d000000000101004b0000036c0000c13d000000400100043d00000044021000390000013403000041000000000032043500000024021000390000001f03000039000001de0000013d0000000201000039000000000301041a0000000202300029000000000332004b00000000030000190000000103004039000000010330008c000001840000613d000000000021041b0000000a010000290000000000100435000000200000043f0000012c0300004100000000010004140000012c0210009c0000000001038019000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d000000000101043b000000000201041a00000002030000290000000002320019000000000021041b000000400100043d000000000031043500000000020004140000012c0320009c0000012c0400004100000000020480190000012c0310009c00000000010480190000004001100210000000c002200210000000000121019f00000130011001c70000800d020000390000000303000039000001320400004100000000050000190000000a0600002904ab04a10000040f0000000101200190000003a00000613d0000002001000039000001000010044300000120000004430000013301000041000004ac0001042e0000000001000019000004ad0001043000000020030000390000000004310436000000003202043400000000002404350000004001100039000000000402004b000003b10000613d000000000400001900000000054100190000000006430019000000000606043300000000006504350000002004400039000000000524004b000003aa0000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d0004000000000002000400000003001d0000014501100198000004080000613d000201450020019c000004120000613d000300000001001d0000000000100435000000200000043f0000012c0100004100000000020004140000012c0320009c0000000002018019000000c00120021000000131011001c7000080100200003904ab04a60000040f0000000102200190000004060000613d000000000101043b000000000201041a000100000002001d000000040120006c0000041c0000413d00000003010000290000000000100435000000200000043f0000012c0300004100000000010004140000012c0210009c0000000001038019000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000004060000613d0000000103000029000000040230006a000000000101043b000000000021041b0000000201000029000000000010043500000000010004140000012c0210009c0000012c01008041000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000004060000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d00000000003104350000012c0200004100000000030004140000012c0430009c00000000030280190000012c0410009c00000000010280190000004001100210000000c002300210000000000112019f00000130011001c70000800d02000039000000030300003900000132040000410000000305000029000000020600002904ab04a10000040f0000000101200190000004060000613d000000000001042d0000000001000019000004ad00010430000000400100043d00000064021000390000015503000041000000000032043500000044021000390000015603000041000000000032043500000024021000390000002503000039000004250000013d000000400100043d00000064021000390000015303000041000000000032043500000044021000390000015403000041000000000032043500000024021000390000002303000039000004250000013d000000400100043d000000640210003900000151030000410000000000320435000000440210003900000152030000410000000000320435000000240210003900000026030000390000000000320435000001350200004100000000002104350000000402100039000000200300003900000000003204350000012c020000410000012c0310009c000000000102801900000040011002100000014a011001c7000004ad00010430000300000000000200000145011001980000046c0000613d000200000003001d000301450020019c000004760000613d000100000001001d00000000001004350000000101000039000000200010043f0000012c0300004100000000010004140000012c0210009c0000000001038019000000c00110021000000131011001c7000080100200003904ab04a60000040f000000010220019000000003030000290000046a0000613d000000000101043b0000000000300435000000200010043f00000000010004140000012c0210009c0000012c01008041000000c00110021000000131011001c7000080100200003904ab04a60000040f000000030600002900000001022001900000046a0000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000012c0200004100000000030004140000012c0430009c00000000030280190000012c0410009c00000000010280190000004001100210000000c002300210000000000112019f00000130011001c70000800d0200003900000003030000390000015704000041000000010500002904ab04a10000040f00000001012001900000046a0000613d000000000001042d0000000001000019000004ad00010430000000400100043d00000064021000390000015a03000041000000000032043500000044021000390000015b030000410000000000320435000000240210003900000024030000390000047f0000013d000000400100043d000000640210003900000158030000410000000000320435000000440210003900000159030000410000000000320435000000240210003900000022030000390000000000320435000001350200004100000000002104350000000402100039000000200300003900000000003204350000012c020000410000012c0310009c000000000102801900000040011002100000014a011001c7000004ad000104300000012c030000410000012c0410009c000000000103801900000040011002100000012c0420009c00000000020380190000006002200210000000000112019f00000000020004140000012c0420009c0000000002038019000000c002200210000000000112019f0000015c011001c7000080100200003904ab04a60000040f00000001022001900000049f0000613d000000000101043b000000000001042d0000000001000019000004ad00010430000004a4002104210000000102000039000000000001042d0000000002000019000000000001042d000004a9002104230000000102000039000000000001042d0000000002000019000000000001042d000004ab00000432000004ac0001042e000004ad000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000020000000000000000000000000000004000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000020000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7700000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b000000000000000000000000000000000000000000000000ffffffffffffff7f4e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000045524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f2061648c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f206164640200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090163f528fff388359ee3eca8dd71e5f90725a7ab34ecc4f9899d1d416a87631", + "entries": [ + { + "constructorArgs": [ + "jack", + "jd", + 18, + "1000000000000000000000000000" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xEd595c348281973F24f1966e55C8C01301357726", + "txHash": "0x1e963e607a31345c428d1e5a23c4c331a0e8bff2b562fe58d5c6a044a77487d8" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/.chainId b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/.chainId new file mode 100644 index 00000000..66792661 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/.chainId @@ -0,0 +1 @@ +0x12c \ No newline at end of file diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json new file mode 100644 index 00000000..fc9de3ce --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json @@ -0,0 +1,1584 @@ +{ + "sourceName": "contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol", + "contractName": "ContinuousVestingMerkleDistributor", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "int256", + "name": "amount", + "type": "int256" + } + ], + "name": "Adjust", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Claim", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "fromDelegate", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "toDelegate", + "type": "address" + } + ], + "name": "DelegateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + } + ], + "name": "DelegateVotesChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + } + ], + "name": "InitializeDistributionRecord", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "uri", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fractionDenominator", + "type": "uint256" + } + ], + "name": "InitializeDistributor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cliff", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "end", + "type": "uint256" + } + ], + "name": "SetContinuousVesting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint160", + "name": "maxDelayTime", + "type": "uint160" + } + ], + "name": "SetDelay", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + } + ], + "name": "SetMerkleRoot", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "name": "SetSweepRecipient", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "SetToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + } + ], + "name": "SetTotal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "string", + "name": "uri", + "type": "string" + } + ], + "name": "SetUri", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "voteFactor", + "type": "uint256" + } + ], + "name": "SetVoteFactor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepNative", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "int256", + "name": "amount", + "type": "int256" + } + ], + "name": "adjust", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint32", + "name": "pos", + "type": "uint32" + } + ], + "name": "checkpoints", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "fromBlock", + "type": "uint32" + }, + { + "internalType": "uint224", + "name": "votes", + "type": "uint224" + } + ], + "internalType": "struct ERC20Votes.Checkpoint", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "totalAmount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "merkleProof", + "type": "bytes32[]" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + } + ], + "name": "delegate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "delegateBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "delegates", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "distancePerSecond", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "getClaimableAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "getDistributionRecord", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "initialized", + "type": "bool" + }, + { + "internalType": "uint120", + "name": "total", + "type": "uint120" + }, + { + "internalType": "uint120", + "name": "claimed", + "type": "uint120" + } + ], + "internalType": "struct DistributionRecord", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getFairDelayTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFractionDenominator", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMerkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + } + ], + "name": "getPastTotalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + } + ], + "name": "getPastVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSweepRecipient", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "getVestedFraction", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getVestingConfig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "getVoteFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_cliff", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "merkleProof", + "type": "bytes32[]" + } + ], + "name": "initializeDistributionRecord", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "maxDelayTime", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "numCheckpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "randomValue", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + } + ], + "name": "setMerkleRoot", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "_recipient", + "type": "address" + } + ], + "name": "setSweepRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + } + ], + "name": "setToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + } + ], + "name": "setTotal", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_uri", + "type": "string" + } + ], + "name": "setUri", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_cliff", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + } + ], + "name": "setVestingConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_voteFactor", + "type": "uint256" + } + ], + "name": "setVoteFactor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "sweepToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sweepToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "token", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "total", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x0004000000000002000e00000000000200000000030100190000006003300270000007960030019d0000079609300197000300000091035500020000000103550000000102200190000000230000c13d0000008005000039000000400050043f000000040290008c000015000000413d000000000201043b000000e002200270000007b30420009c000000680000213d000007e10420009c000000790000a13d000007e20420009c000000960000213d000007ee0420009c000001bf0000213d000007f40420009c0000044d0000213d000007f70420009c000006bd0000613d000007f80120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001c010000390000060d0000013d0000016001000039000000400010043f0000000001000416000000000101004b000015000000c13d0000001501000039000001600010043f0000079702000041000001800020043f000001a00010043f000001c00020043f0000000303000039000001e00030043f0000079801000041000002000010043f0000026001000039000000400010043f0000000101000039000b00000001001d000002200010043f0000079901000041000002400010043f000000000600041100000010016002100000079a01100197000000000200041a0000079b04200197000000000141019f000000000010041b00000796050000410000000001000414000007960410009c0000000001058019000000c0011002100000079c011001c700000010022002700000079d052001970000800d020000390000079e04000041000a00000006001d1e531e490000040f0000000101200190000015000000613d0000000b03000029000000000103041a0000079f011001970000000a02000029000000000121019f000000000013041b000002600020043f0000000001000414000007960210009c0000079601008041000000c001100210000007a0011001c70000800d02000039000007a1040000411e531e490000040f0000000101200190000015000000613d000001a00500043d000007a20150009c000000ff0000413d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000007b40420009c000000880000a13d000007b50420009c000000d80000213d000007c10420009c000001f00000213d000007c70420009c000004610000213d000007ca0120009c000006d30000613d000007cb0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000000101000039000008790000013d000007f90420009c000001100000a13d000007fa0420009c000001a00000213d000008000420009c000002930000213d000008030420009c000005290000613d000008040120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001701000039000008790000013d000007cc0420009c000001190000a13d000007cd0420009c000001ab0000213d000007d30420009c000002eb0000213d000007d60420009c000005620000613d000007d70220009c000015000000c13d0000000002000416000000440390008c000015000000413d000005190000013d000007e30420009c000002050000213d000007e90420009c000004900000213d000007ec0420009c000006d80000613d000007ed0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000002401100370000000000301043b000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d000a00000003001d0000000b0100002900000000001004350000000f01000039000900000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000008600320009c000000620000213d000000000101043b0000006003200039000000400030043f000000000301041a0000008001300270000008160110019700000040042000390000000000140435000000ff043001900000000001000019000000010100c0390000000001120436000000080230027000000816022001970000000000210435000000000204004b00000d130000c13d000000400100043d00000044021000390000086a0300004100000dc00000013d000007b60420009c000002110000213d000007bc0420009c000004a00000213d000007bf0420009c000006ee0000613d000007c00220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b00000000040200190000079d0220009c000015000000213d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000002401100370000000000301043b000a00000003001d0000000101000039000000000101041a0000079d021001970000000001040019000b00000001001d1e5318cf0000040f000000400100043d0000000a0200002900000000002104350000079602000041000000000300041400000a1d0000013d0000000504000039000000000104041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000000112004b0000021c0000613d0000087a0100004100000000001004350000002201000039000000040010043f0000087b0100004100001e5500010430000008050420009c000002540000a13d000008060420009c000003ea0000213d000008090420009c0000056f0000613d0000080a0120009c000005050000613d000015000000013d000007d80420009c0000025f0000a13d000007d90420009c000004080000213d000007dc0420009c0000058a0000613d000007dd0220009c000015000000c13d0000000002000416000001240490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000004402100370000000000402043b000007a40240009c000015000000213d0000002302400039000000000292004b000015000000813d0000000405400039000000000251034f000000000202043b000007a40620009c000000620000213d0000001f06200039000000200800008a000000000686016f0000003f06600039000000000686016f0000083c0760009c000000620000213d000a00000008001d0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000394004b000015000000213d0000002003500039000000000331034f0000001f0420018f0000000505200272000001540000613d00000000060000190000000507600210000000000873034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000014c0000413d000000000604004b000001630000613d0000000505500210000000000353034f0000000304400210000000a005500039000000000605043300000000064601cf000000000646022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000363019f0000000000350435000000a0022000390000000000020435000000e402100370000000000202043b000900000002001d0000079d0220009c000015000000213d0000010401100370000000000101043b000800000001001d0000079d0110009c000015000000213d000000000100041a000700000001001d0005ff000010019400000f690000c13d0000000701000029000000ff0110019000000000020000190000000102006039000c00000002001d00000000020004150000000c0220008a0006000500200218000000000101004b00000f6d0000c13d000001000100008a000000070110017f00000001011001bf000008400110019700000100011001bf000200000000001d000000000010041b00000002020003670000002403200370000000000303043b000700000003001d0000006403200370000000000303043b000400000003001d0000008403200370000000000303043b000500000003001d000000a403200370000000000303043b000300000003001d000000c402200370000000000202043b000600000002001d0000ff0001100190000010d00000c13d000000400100043d00000064021000390000085003000041000000000032043500000044021000390000085103000041000000000032043500000024021000390000002b03000039000008690000013d000007fb0420009c000002fd0000213d000007fe0120009c000005f70000613d000007ff0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d1e5317f00000040f000008410000013d000007ce0420009c000003ae0000213d000007d10420009c000005fe0000613d000007d20120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001b01000039000000000101041a0000001a02000039000000000202041a0000001903000039000000000303041a000000800030043f000000a00020043f000000c00010043f000008320100004100001e540001042e000007ef0420009c000004cc0000213d000007f20420009c000007210000613d000007f30120009c000015000000c13d0000000001000416000000000101004b000015000000c13d00000000010900191e53152b0000040f00000000060100190000000007020019000a00000007001d0000000008030019000900000008001d000800000004001d000700000005001d000000400100043d000b00000001001d0000002001100039000600000001001d0000000002060019000000000307001900000000040800191e531c520000040f0000000b030000290000000002310049000000200120008a000000000013043500000000010300191e53156a0000040f0000000b01000029000000000201043300000006010000291e531e140000040f000b00000001001d0000000003000031000000080100002900000007020000291e531c5a0000040f00000000020100190000000b010000291e531db20000040f0000000a0100002900000009020000291e531c820000040f000000000100001900001e540001042e000007c20420009c000004e00000213d000007c50420009c0000072e0000613d000007c60220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d1e53157d0000040f0000000b010000291e531df90000040f000000000100001900001e540001042e000007e40420009c000004e90000213d000007e70120009c000007460000613d000007e80120009c000015000000c13d0000000001000416000000000101004b000015000000c13d000000000100041a00000010011002700000087a0000013d000007b70420009c000004fa0000213d000007ba0420009c0000077b0000613d000007bb0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001601000039000008790000013d000000200130008c0000023e0000413d000800000003001d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d00000009050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000008010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000a040000290000023e0000813d000000000002041b0000000102200039000000000312004b0000023a0000413d0000001f0150008c0000050a0000a13d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000200200008a00000009060000290000000003260170000000000101043b000008be0000c13d0000002002000039000008c80000013d0000080b0420009c0000087e0000613d0000080c0420009c000005160000613d0000080d0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d00000014010000390000060d0000013d000007de0420009c0000089e0000613d000007df0420009c000005050000613d000007e00220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000201043b000000000302041a000000000103004b0000000001000019000008410000613d000b00000003001d000000000020043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b020000290000000001120019000000010110008a000000000101041a0000002001100270000008410000013d000008010420009c000006090000613d000008020220009c000015000000c13d0000000002000416000000840490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000002404100370000000000404043b000700000004001d0000079d0440009c000015000000213d0000004404100370000000000404043b000600000004001d0000006404100370000000000404043b000007a40540009c000015000000213d0000002305400039000000000595004b000015000000813d0000000405400039000000000151034f000000000101043b000b00000001001d000007a40110009c000015000000213d00000024014000390000000b030000290000000503300210000500000001001d000a00000003001d000800000013001d000000080190006b000015000000213d000000a00020043f00000007010000290000006001100210000000c00010043f0000000601000029000000d40010043f0000005401000039000000800010043f0000010001000039000000400010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000870011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000a020000290000003f022000390000087102200197000000400300043d0000000002230019000a00000003001d000000000332004b00000000030000190000000103004039000007a40420009c000000620000213d0000000103300190000000620000c13d000000400020043f0000000a020000290000000b040000290000000002420436000900000002001d0000000802000029000000000220007c000015000000213d0000000b0200006b00000f8f0000c13d0000001c02000039000000000202041a000500000002001d00000fbf0000013d000007d40420009c000006110000613d000007d50220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000302043b0000079d0230009c000015000000213d0000002401100370000000000201043b00000000010300191e531c270000040f000008410000013d000007fc0420009c000006310000613d000007fd0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000002401100370000000000101043b000800000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000086b0210009c000008600000813d000000080110006b000009bb0000813d0000000b0100002900000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000700000001001d000000000101041a000a00000001001d000000060110008c00000def0000413d0000000a050000290000008001500270000008560250009c0000000001054019000008560250009c0000008002000039000000000200401900000040032001bf000007a20410009c00000000020380190000004003100270000007a20410009c000000000103801900000020032001bf000008570410009c00000000020380190000002003100270000008570410009c000000000103801900000010032001bf000008580410009c00000000020380190000001003100270000008580410009c0000000001038019000001000310008c00000008022080390000000801108270000000100310008c00000004022080390000000401108270000000040310008c00000002022080390000000201108270000000010110008c00000001022020390000000101200270000000000215022f000000010110020f0000000001210019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001041002700000000a214000f9000000000214004b0000000004018019000b00000004001d0000000a0140006b0000065f0000413d0000000701000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d0000000b030000290000000a02300069000000000101043b0000000001210019000000000101041a0000079601100197000000080110006c0000135a0000a13d0000000003000019000a00000002001d0000000a0130006c00000df20000413d0000000a02000029000a00000002001d000000000102004b0000000001000019000008410000613d0000000701000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000a020000290000028e0000013d000007cf0420009c000006650000613d000007d00220009c000015000000c13d0000000002000416000000c40390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000004402100370000000000202043b000a00000002001d0000002402100370000000000202043b000900000002001d0000006401100370000000000101043b000800000001001d000000ff0110008c000015000000213d000700000005001d0000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000400200043d000000000101043b0000000a03000029000000000131004b00000b8f0000a13d00000044012000390000082f03000041000000000031043500000024012000390000001d030000390000000000310435000007ad0100004100000000001204350000000401200039000000200300003900000000003104350000079601000041000007960320009c0000000002018019000000400120021000000823011001c700001e5500010430000008070420009c000006890000613d000008080220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000000401100370000000000101043b0000001102000039000000000012041b000000800010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000829011001c70000800d020000390000000103000039000008800400004100000c8f0000013d000007da0420009c000006a60000613d000007db0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d000000000200041100000000002004350000000302000039000000200020043f0000002401100370000000000101043b000a00000001001d00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b020000290000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000501041a000000400100043d000007ad02000041000000000021043500000004021000390000002003000039000000000032043500000044021000390000079603000041000007960410009c0000000003014019000000240410003900000040033002100000000a0550006c00000c010000813d0000002505000039000000000054043500000837040000410000000000420435000000640110003900000838020000410000000000210435000007b0013001c700001e5500010430000007f50420009c000007980000613d000007f60220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000b01000039000000200010043f000000400200003900000000010000191e531e140000040f000008790000013d000007c80420009c000007bf0000613d000007c90220009c000015000000c13d0000000002000416000000e40390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000002402100370000000000202043b000a00000002001d0000079d0220009c000015000000213d0000006402100370000000000202043b000900000002001d0000008401100370000000000101043b000800000001001d000000ff0110008c000015000000213d000700000005001d0000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000090110006c00000d300000a13d000000400100043d000000440210003900000828030000410000055e0000013d000007ea0420009c000007d90000613d000007eb0220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000901000039000004db0000013d000007bd0420009c000007fc0000613d000007be0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000079d0320009c000015000000213d0000002401100370000000000101043b000b00000001001d000007960110009c000015000000213d000000c001000039000000400010043f000000800000043f000000a00000043f00000000002004350000000c01000039000000200010043f000000400200003900000000010000191e531e140000040f0000000b020000291e5315be0000040f1e5315d90000040f00000000210104340000079601100197000000400300043d00000000011304360000000002020433000008120220019700000000002104350000079601000041000007960230009c0000000003018019000000400130021000000813011001c700001e540001042e000007f00420009c0000081c0000613d000007f10220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000201000039000000200010043f000000400200003900000000010000191e531e140000040f0000060d0000013d000007c30420009c000008370000613d000007c40120009c000015000000c13d0000000001000416000000000101004b000015000000c13d00000012010000390000060d0000013d000007e50420009c000008490000613d000007e60120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000800b01000039000000040300003900000000040004150000000e0440008a000000050440021000000844020000411e531e2a0000040f000b00000001001d1e53189f0000040f0000082e0000013d000007b80120009c000008750000613d000007b90120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000000301000039000000800010043f0000080e0100004100001e540001042e0000000001000416000000000101004b000015000000c13d00000004010000390000060d0000013d000000000105004b00000000010000190000050e0000613d000001c00100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f000008d60000013d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0110009c000015000000213d000007ad01000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f0000082501000041000000c40010043f000008830100004100001e55000104300000000002000416000000640390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000079d0320009c000015000000213d0000002401100370000000000101043b0000079d0110009c000015000000213d00000000002004350000000301000039000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b00000000020004110000079d022001970000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000101041a000000010200008a000000000221004b00000a6e0000613d00000044020000390000000202200367000000000202043b000000000121004b00000a6e0000813d000000400100043d00000044021000390000087f03000041000000000032043500000024021000390000001d0300003900000c990000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d1e531da60000040f000000800010043f0000080e0100004100001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000501043b0000079d0150009c000015000000213d000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d000000000105004b000009d10000c13d000007ad01000041000000800010043f0000002001000039000000840010043f0000001301000039000000a40010043f0000088501000041000000c40010043f000008830100004100001e55000104300000000002000416000000240490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000502043b000007a40250009c000015000000213d0000002302500039000000000292004b000015000000813d0000000406500039000000000261034f000000000202043b000007a40420009c000000620000213d0000001f07200039000000200400008a000000000747016f0000003f07700039000000000747016f0000083c0870009c000000620000213d0000008007700039000000400070043f000000800020043f00000000052500190000002405500039000000000395004b000015000000213d0000002003600039000000000131034f0000001f0320018f0000000505200272000005b70000613d00000000060000190000000507600210000000000871034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b000005af0000413d000000000603004b000005c60000613d0000000505500210000000000151034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f0000000000150435000000a0012000390000000000010435000000000100041a00000010011002700000079d011001970000000002000411000000000121004b00000dbd0000c13d000000800200043d000007a40120009c000000620000213d0000001301000039000000000501041a000000010350019000000001065002700000007f0360018f000000000306c0190000001f0630008c00000000060000190000000106002039000000000565013f00000001055001900000010a0000c13d000000200530008c000005ef0000413d0000001f05200039000000050550027000000814065000410000081405000041000000200720008c000000000506801900000000001004350000001f0330003900000005033002700000081403300041000000000635004b000005ef0000813d000000000005041b0000000105500039000000000635004b000005eb0000413d0000001f0320008c00000fcd0000a13d00000000001004350000000004420170000010010000c13d000000a00500003900000814030000410000100e0000013d0000000001000416000000000101004b000015000000c13d0000001201000039000000800010043f0000080e0100004100001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0110009c000015000000213d00000018010000390000060d0000013d0000000001000416000000000101004b000015000000c13d0000001101000039000000000101041a000000800010043f0000080e0100004100001e540001042e0000000001000416000000000101004b000015000000c13d000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d000008330100004100000000001004390000000001000410000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c70000800a020000391e531e4e0000040f0000000102200190000014930000613d000000000901043b0000000102000039000000000302041a00000000010004140000079d04300197000000040340008c000009bf0000c13d000000010100003100000c7c0000013d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d000000000100041100000000001004350000000301000039000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b020000290000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000101041a000000010200008a000000000121013f00000024020000390000000202200367000000000202043b000000000112004b00000a6e0000a13d0000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e55000104300000000002000416000000640390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000004402100370000000000202043b0000002403100370000000000303043b0000000401100370000000000101043b0000001904000039000000000014041b0000001a04000039000000000034041b0000001b04000039000000000024041b000000800010043f000000a00030043f000000c00020043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000830011001c70000800d020000390000000103000039000008310400004100000c8f0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d0000088101000041000000800010043f0000000001000410000000840010043f00000000010004140000000b02000029000000040320008c000009e00000c13d0000000103000031000000200130008c0000000004030019000000200400803900000a0b0000013d0000000001000416000000000101004b000015000000c13d000000e001000039000000400010043f0000002401000039000000800010043f0000083901000041000000a00010043f0000083a01000041000000c00010043f0000002001000039000000e00010043f000000800100003900000100020000391e5315020000040f000000e00110008a0000079602000041000007960310009c000000000102801900000060011002100000083b011001c700001e540001042e0000000002000416000000240490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000302043b000000000200041a00000010022002700000079d022001970000000004000411000000000242004b000007f30000c13d0000000102000039000000000402041a00000000050004140000079d04400197000000040640008c000009450000c13d000000000191034f000000010800003100000a370000013d0000000001000416000000000101004b000015000000c13d0000001501000039000008790000013d0000000001000416000000000101004b000015000000c13d000000000100041a00000010021002700000079d022001970000000005000411000000000252004b000007f30000c13d0000079b01100197000000000010041b00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000079c011001c70000800d0200003900000003030000390000079e04000041000000000600001900000c8f0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d000000e002000039000b00000002001d000000400020043f000000800000043f000000a00000043f000000c00000043f00000000001004350000000f01000039000000200010043f000000400200003900000000010000191e531e140000040f000a00000001001d0000000b010000291e5315540000040f0000000a01000029000000000101041a000000ff021001900000000002000019000000010200c039000000e00020043f00000008031002700000081603300197000001000030043f00000080011002700000081601100197000001200010043f000000400100043d0000000002210436000001000300043d00000816033001970000000000320435000001200200043d0000081602200197000000400310003900000000002304350000079602000041000007960310009c0000000001028019000000400110021000000817011001c700001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000201043b0000079d0120009c000015000000213d00000000010004111e5315ec0000040f000000000100001900001e540001042e0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000079d0320009c000015000000213d0000002401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d00000000002004350000000301000039000000200010043f000000400200003900000000010000191e531e140000040f0000000b020000291e5315ad0000040f000000000101041a000008410000013d0000000001000416000000000101004b000015000000c13d0000081d0100004100000000001004390000000001000412000b00000001001d0000000400100443000000a001000039000000240010044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000400700043d000000000101043b000000ff0210008c0000092a0000c13d0000000704000039000000000304041a000000010530019000000001023002700000007f0120018f000000000102c0190000001f0210008c00000000020000190000000102002039000000000223013f00000001022001900000010a0000c13d0000000002170436000000000505004b00000c070000613d0000000000400435000000000301004b000000000300001900000c0d0000613d000007a50400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000513004b000007730000413d00000c0d0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d000000000201004b00000a2a0000c13d000007ad01000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000080f01000041000000c40010043f0000081001000041000000e40010043f000008110100004100001e55000104300000000001000416000000000101004b000015000000c13d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000400300043d000000000101043b0000086b0110009c000009350000413d00000064013000390000086d02000041000000000021043500000044013000390000086e020000410000000000210435000000240130003900000026020000390000000000210435000007ad0100004100000000001304350000000401300039000000200200003900000000002104350000079601000041000007960230009c00000000030180190000004001300210000007b0011001c700001e55000104300000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000000401100370000000000101043b0000001802000039000000000012041b000000800010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000829011001c70000800d0200003900000001030000390000082a0400004100000c8f0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000000401100370000000000101043b0000001c02000039000000000012041b000000800010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000829011001c70000800d020000390000000103000039000008490400004100000c8f0000013d000007ad01000041000000800010043f0000002001000039000000840010043f000000a40010043f0000085201000041000000c40010043f000008830100004100001e55000104300000000001000416000000000101004b000015000000c13d0000001303000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000010a0000c13d000000800010043f000000000404004b000009440000613d0000000000300435000000000201004b0000000002000019000009a80000613d00000814030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008140000413d000009a80000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000c01000039000000200010043f000000400200003900000000010000191e531e140000040f000000000101041a000b00000001001d1e5318b70000040f000000400100043d0000000b0200002900000000002104350000079602000041000007960310009c0000000001028019000000400110021000000818011001c700001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d1e531cfe0000040f000000400200043d00000000001204350000079601000041000007960320009c0000000002018019000000400120021000000818011001c700001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000008550210009c0000094e0000a13d000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300000000001000416000000000101004b000015000000c13d0000001001000039000000000101041a0000079d01100197000000800010043f0000080e0100004100001e540001042e0000000001000416000000000101004b000015000000c13d0000000503000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000010a0000c13d000000800010043f000000000404004b000009a20000613d0000000000300435000000000201004b0000000002000019000009a80000613d00000886030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008960000413d000009a80000013d0000000001000416000000000101004b000015000000c13d0000000603000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000010a0000c13d000000800010043f000000000404004b000009a20000613d0000000000300435000000000201004b0000000002000019000009a80000613d00000854030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008b60000413d000009a80000013d00000020020000390000000004000019000001a0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000008c00000413d000000000363004b000008d30000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001a0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000a04000029000000000014041b000001e00500043d000007a40150009c000000620000213d0000000604000039000000000104041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f00000001011001900000010a0000c13d000000200130008c000009080000413d000800000003001d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d00000009050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000008010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000a04000029000009080000813d000000000002041b0000000102200039000000000312004b000009040000413d0000001f0150008c0000091e0000a13d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000200200008a00000009060000290000000003260170000000000101043b00000a750000c13d000000200200003900000a7f0000013d000000000105004b0000000001000019000009220000613d000002000100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f00000a8d0000013d000000ff0210018f000000200320008c000009c80000413d0000085c0100004100000000001704350000079601000041000007960270009c000000000701801900000040017002100000085d011001c700001e55000104300000000001030019000a00000003001d1e53155f0000040f0000000a0300002900000020013000390000086c0200004100000000002104350000001d0100003900000000001304350000000002030019000000400100043d000b00000001001d1e5315150000040f0000000b04000029000009b10000013d000009a20000013d0000079601000041000007960250009c0000000005018019000000c001500210000000000203004b000b00000003001d00000a2d0000c13d000000000204001900000a300000013d0000000b07000029000000000117004b000009bb0000813d0000000d01000039000000000201041a000000060320008c00000c4c0000413d0000008003200270000008560420009c0000000003024019000008560420009c0000008004000039000000000400401900000040054001bf000007a20630009c00000000040580190000004005300270000007a20630009c000000000305801900000020054001bf000008570630009c00000000040580190000002005300270000008570630009c000000000305801900000010054001bf000008580630009c00000000040580190000001005300270000008580630009c0000000003058019000001000530008c00000008044080390000000803308270000000100530008c00000004044080390000000403308270000000040530008c00000002044080390000000203308270000000010330008c00000001044020390000000103400270000000000432022f000000010330020f0000000003430019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c000011d30000813d0000087a0100004100000000001004350000001201000039000000040010043f0000087b0100004100001e5500010430000001000300008a000000000232016f000000a00020043f000000000101004b0000002002000039000000000200601900000020022000390000008001000039000b00000001001d1e53156a0000040f000000400100043d000a00000001001d0000000b020000291e5315150000040f0000000a0400002900000000014100490000079602000041000007960310009c0000000001028019000007960340009c000000000402801900000040024002100000006001100210000000000121019f00001e540001042e000000400100043d00000044021000390000086f0300004100000a710000013d0000079602000041000007960310009c0000000001028019000000c001100210000000000209004b000b00000009001d00000c720000c13d000000000204001900000c760000013d0000085b0370009c000000620000213d0000004003700039000000400030043f00000020037000390000000000130435000a00000007001d000000000027043500000c1a0000013d0000001001000039000000000201041a0000079f02200197000000000252019f000000000021041b00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000079c011001c70000800d020000390000000203000039000008840400004100000c8f0000013d0000079604000041000007960310009c0000000001048019000000c00110021000000882011001c71e531e4e0000040f000000000301001900000060033002700000079603300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000009f80000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000009f00000413d000000000705004b00000a070000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000cd40000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000015000000413d0000000101000039000000000101041a000000800300043d000a00000003001d0000079d021001970000000b010000291e5318cf0000040f000000400100043d0000000a02000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d02000039000000020300003900000815040000410000000b0500002900000c8f0000013d1e5315950000040f000000000100001900001e540001042e0000079c011001c7000080090200003900000000050000191e531e490000040f0000000b03000029000300000001035500000000040100190000006004400270000107960040019d0000079608400197000000000408004b00000a400000c13d000000400100043d000000010220019000000c940000613d00000000003104350000079602000041000000000300041400000c840000013d000007a40480009c000000620000213d0000001f04800039000000200500008a000000000454016f0000003f04400039000000000454016f000000400500043d0000000004450019000000000654004b00000000060000190000000106004039000007a40740009c000000620000213d0000000106600190000000620000c13d000000400040043f0000001f0480018f0000000005850436000000050980027200000a5e0000613d000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000796004b00000a560000413d000000000604004b00000a390000613d0000000506900210000000000161034f00000000066500190000000304400210000000000506043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000016043500000a390000013d000000400100043d0000004402100039000008250300004100000000003204350000002402100039000000190300003900000c990000013d00000020020000390000000004000019000001e0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b00000a770000413d000000000363004b00000a8a0000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001e0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000a04000029000000000014041b000001600100043d000000200210008c00000ab40000413d000007a40210009c000000620000213d0000000702000039000000000402041a000000010340019000000001054002700000007f0350018f000000000305c0190000001f0530008c00000000050000190000000105002039000000000454013f00000001044001900000010a0000c13d000000200430008c00000aad0000413d0000001f033000390000000505300270000007a5035000410000001f041000390000000504400270000000000554004b00000aad0000813d000007a504400041000000000004041b0000000104400039000000000534004b00000aa90000413d0000000000200435000000200300008a000000000431017000000cf70000c13d0000018005000039000007a50300004100000d040000013d00000003021002100000010002200089000000010300008a00000000022301cf000000000301004b0000000002006019000001800300043d000000000223016f000000000212019f000001200020043f000002200200043d000000200320008c00000ae40000413d000007a40320009c000000620000213d0000000803000039000000000503041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f00000001055001900000010a0000c13d000000200540008c00000add0000413d0000001f044000390000000506400270000007a6046000410000001f052000390000000505500270000000000665004b00000add0000813d000007a605500041000000000005041b0000000105500039000000000645004b00000ad90000413d0000000000300435000000200400008a000000000542017000000dd30000c13d0000024006000039000007a60400004100000de00000013d00000003032002100000010003300089000000010400008a00000000033401cf000000000402004b0000000003006019000002400400043d000000000334016f000000000223019f000001400020043f00000796040000410000000002000414000007960320009c0000000002048019000007960310009c00000000010480190000006001100210000000c002200210000000000121019f000007a7011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000a00000001001d000000e00010043f000002200100043d0000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000006001100210000000c002200210000000000121019f000007a8011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000900000001001d000001000010043f000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000a00010043f000000400300043d0000008002300039000000000012043500000060013000390000000902000029000000000021043500000040013000390000000a020000290000000000210435000000a001000039000800000001001d0000000001130436000000a0023000390000000004000410000900000004001d0000000000420435000007ab020000410000000000210435000a00000003001d000007ac0230009c000000620000213d0000000a04000029000000c002400039000700000002001d000000400020043f0000079602000041000007960310009c000000000102801900000040011002100000000003040433000007960430009c00000000030280190000006003300210000000000113019f0000000003000414000007960430009c0000000003028019000000c002300210000000000112019f0000079c011001c700008010020000391e531e4e0000040f00000001022001900000000b03000029000015000000613d000000000101043b000000800010043f0000000902000029000000c00020043f0000000e02000039000000000032041b000000000200041a0000ff000320019000000fd90000c13d000000ff0320018f000000ff0330008c00000b700000613d000000ff012001bf000000000010041b000000ff01000039000000400200043d000000000012043500000796010000410000000003000414000007960430009c0000000003018019000007960420009c00000000020180190000004001200210000000c002300210000000000121019f000007a3011001c70000800d020000390000000103000039000007b1040000411e531e490000040f0000000101200190000015000000613d000000c00100043d000900000001001d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a0001004430000004001000039000001c0001004430000000901000029000001e0001004430000006001000039000000e00300043d000002000010044300000220003004430000008001000039000001000300043d00000240001004430000026000300443000001200100043d00000008030000290000028000300443000002a000100443000000c001000039000001400300043d000002c000100443000002e000300443000001000020044300000007010000390000012000100443000007b20100004100001e540001042e0000008001200039000000000031043500000060012000390000000903000029000000000031043500000040012000390000000b030000290000000000310435000000070100002900000000011204360000082b0300004100000000003104350000082c0320009c000000620000213d000000a003200039000000400030043f0000079604000041000007960310009c000000000104801900000040011002100000000002020433000007960320009c00000000020480190000006002200210000000000112019f00000002020003670000008403200370000000000303043b000600000003001d000000a402200370000000000202043b000a00000002001d0000000002000414000007960320009c0000000002048019000000c002200210000000000112019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000400000001001d0000081d0100004100000000001004390000000001000412000500000001001d0000000400100443000000400100003900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000079d011001970000000002000410000200000002001d000000000112004b00000edc0000c13d0000081d010000410000000000100439000000050100002900000004001004430000002001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000300000001001d000007a90100004100000000001004390000000001000414000007960210009c0000079601008041000000c001100210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000030110006c00000edc0000c13d0000081d01000041000000000010043900000005010000290000000400100443000000240000044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d00000f370000013d000000190100003900000000001404350000082501000041000000000012043500000823013001c700001e5500010430000001000400008a000000000343016f0000000000320435000000000101004b000000200300003900000000030060190000003f01300039000000200200008a000000000221016f0000000001720019000000000221004b00000000020000190000000102004039000007a40310009c000000620000213d0000000102200190000000620000c13d000a00000007001d000000400010043f0000081d0100004100000000001004390000000b010000290000000400100443000000c001000039000000240010044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000400200043d000000000101043b000000ff0310008c00000dc80000c13d0000000805000039000000000405041a000000010640019000000001034002700000007f0130018f000000000103c0190000001f0310008c00000000030000190000000103002039000000000334013f00000001033001900000000a080000290000010a0000c13d0000000003120436000000000606004b00000e5c0000613d0000000000500435000000000401004b000000000400001900000e620000613d000007a60500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b00000c440000413d00000e620000013d0000000003000019000000000423004b00000c680000813d000000010400008a00000c540000013d0000000002050019000000000523004b00000c680000813d000000000523016f000000000623013f00000001066002700000000005560019000000000665004b0000000006000019000000010600403900000001066001900000065f0000c13d00000000001004350000085906500041000000000606041a0000079606600197000000000676004b00000c510000213d000000000345004b0000065f0000613d0000000103500039000000000523004b00000c540000413d000000000302004b000000000300001900000c6f0000613d00000000001004350000085a01200041000000000101041a0000002003100270000000400100043d0000000000310435000008310000013d0000079c011001c70000800902000039000000000309001900000000050000191e531e490000040f0000000b0900002900030000000103550000006001100270000107960010019d0000079601100197000000000301004b00000ca50000c13d000000400100043d000000010220019000000c940000613d000000000091043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d02000039000000010300003900000836040000411e531e490000040f0000000101200190000015000000613d000000000100001900001e540001042e000000440210003900000835030000410000000000320435000000240210003900000010030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e5500010430000007a40310009c000000620000213d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000007a40630009c000000620000213d0000000105500190000000620000c13d000000400030043f0000001f0310018f00000000041404360000000305000367000000050110027200000cc40000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000cbc0000413d000000000603004b00000c7e0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f000000000031043500000c7e0000013d000000400200043d0000001f0430018f000000050530027200000ce10000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000cd90000413d000000000604004b00000cf00000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000079601000041000007960420009c000000000201801900000040012002100000006002300210000000000121019f00001e5500010430000007a50300004100000020060000390000000005000019000000000706001900000160067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b00000cfa0000413d0000018005700039000000000414004b00000d0e0000813d0000000304100210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010310021000000001033001bf000000000032041b000000ff0200003900000abd0000013d00000861020000410000000a06000029000000000306004b000000000300001900000000030240190000086104600197000000000504004b000000000200a019000008610440009c000000000203c019000000000202004b00000d220000c13d000000000206004b000800000006001d00000d260000c13d000008610260009c0000065f0000613d0000000a0200002900080000002000510000000802000029000008160220009c00000e2a0000413d000000400100043d0000004402100039000008690300004100000000003204350000002402100039000000180300003900000c990000013d0000000b0100002900000000001004350000000901000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000301041a0000000102300039000000000021041b00000002010003670000004402100370000000000402043b000000400200043d000000c00520003900000009060000290000000000650435000000a00520003900000000003504350000008003200039000000000043043500000060032000390000000a04000029000000000043043500000040032000390000000b04000029000000000043043500000020032000390000081b040000410000000000430435000000c00400003900000000004204350000081c0420009c000000620000213d000000e004200039000000400040043f0000079605000041000007960430009c000000000305801900000040033002100000000002020433000007960420009c00000000020580190000006002200210000000000232019f000000a403100370000000000303043b000900000003001d000000c401100370000000000101043b000a00000001001d0000000001000414000007960310009c0000000001058019000000c001100210000000000121019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000500000001001d0000081d0100004100000000001004390000000001000412000600000001001d0000000400100443000000400100003900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000079d011001970000000002000410000300000002001d000000000112004b000011060000c13d0000081d010000410000000000100439000000060100002900000004001004430000002001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000400000001001d000007a90100004100000000001004390000000001000414000007960210009c0000079601008041000000c001100210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000040110006c000011060000c13d0000081d01000041000000000010043900000006010000290000000400100443000000240000044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000011610000013d000000400100043d000000440210003900000852030000410000000000320435000007ad020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000c9e0000013d000000ff0310018f000000200430008c00000e1f0000413d0000085c0100004100000000001204350000079601000041000007960320009c000000000201801900000040012002100000085d011001c700001e5500010430000007a60400004100000020070000390000000006000019000000000807001900000220078000390000000007070433000000000074041b000000200780003900000001044000390000002006600039000000000956004b00000dd60000413d0000024006800039000000000525004b00000dea0000813d0000000305200210000000f80550018f000000010700008a000000000557022f000000000575013f0000000006060433000000000556016f000000000054041b000000010220021000000001022001bf000000000023041b000000ff0200003900000aed0000013d00000000030000190000000a0130006c0000039a0000813d000680100000003d0000000a0200002900000df90000013d00000000020300190000000903000029000000000123004b0000039b0000813d000000000123016f000a00000002001d000900000003001d000000000223013f00000001022002700000000003120019000000000123004b0000000001000019000000010100403900000001011001900000065f0000c13d000b00000003001d000000070100002900000000001004350000000001000414000007960210009c0000079601008041000000c001100210000007a3011001c700000006020000291e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b030000290000000001310019000000000101041a0000079601100197000000080110006c00000df50000213d000000010100008a000000000113004b0000065f0000613d00000001033000390000000a02000029000000000123004b00000df90000413d0000039b0000013d0000085b0420009c0000000a08000029000000620000213d0000004004200039000000400040043f000000200420003900000000001404350000000000320435000000400100043d000b00000001001d00000e700000013d000000010200008a00000861040000410000000a03000029000000000223004b000000000200001900000000020420190000086103300197000008610530009c00000000040080190000086103300167000008610330009c000000000402c0190000001102000039000000000302041a000000000404004b00000ed00000613d0000000801300029000000000331004b0000000003000019000000010300403900000001033001900000065f0000c13d000000000012041b0000000b0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a000000080320027000000816033001970000000803300029000008160430009c0000065f0000213d000008620220019700000008033002100000086303300197000000000223019f000000000021041b000010bd0000013d000001000500008a000000000454016f0000000000430435000000000101004b000000200400003900000000040060190000003f01400039000000200300008a000000000131016f0000000003210019000000000113004b00000000010000190000000101004039000b00000003001d000007a40330009c000000620000213d0000000101100190000000620000c13d0000000b01000029000000400010043f0000000b010000290000085e0110009c000000620000213d0000000b030000290000002001300039000600000001001d000000400010043f0000000000030435000000400500043d0000002001500039000000e00300003900000000003104350000085f0100004100000000001504350000000041080434000000e0035000390000000000130435000a00000005001d0000010003500039000000000501004b00000e8d0000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000615004b00000e860000413d000000000413001900000000000404350000001f011000390009002000000092000000090110017f00000000031300190000000a0400002900000000014300490000004004400039000000000014043500000000160204340000000005630436000000000206004b00000ea30000613d000000000200001900000000035200190000000004210019000000000404043300000000004304350000002002200039000000000362004b00000e9c0000413d000800000005001d000700000006001d00000000016500190000000000010435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000a040000290000008002400039000000000300041000000000003204350000006002400039000000000012043500000007010000290000001f01100039000000090110017f00000008011000290000000002410049000000c0034000390000000000230435000000a00240003900000000000204350000000b0200002900000000020204330000000001210436000000000302004b000009b00000613d00000000030000190000000605000029000000005405043400000000014104360000000103300039000000000423004b00000eca0000413d000009b00000013d000000080430006c00000ff60000813d000000400100043d00000064021000390000086603000041000000000032043500000044021000390000086703000041000000000032043500000024021000390000002703000039000008690000013d000000400100043d000300000001001d0000002002100039000007ab01000041000100000002001d00000000001204350000081d010000410000000000100439000000050100002900000004001004430000006001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000302000029000000400220003900000000001204350000081d01000041000000000010043900000005010000290000000400100443000000070100002900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000030200002900000060022000390000000000120435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000304000029000000a0024000390000000203000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000007ac0140009c000000620000213d0000000303000029000000c001300039000000400010043f00000796010000410000000104000029000007960240009c000000000401801900000040024002100000000003030433000007960430009c00000000030180190000006003300210000000000223019f0000000003000414000007960430009c0000000003018019000000c001300210000000000121019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000400200043d0000002203200039000000040400002900000000004304350000081f0300004100000000003204350000000203200039000000000013043500000796040000410000000001000414000007960310009c0000000001048019000007960320009c000707960000004500000000020480190000004002200210000000c001100210000000000112019f00000820011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000007960320009c00000007030000290000000003024019000700000003001d0000000a03000029000008210330009c000012b60000a13d000000640120003900000826030000410000000000310435000000440120003900000827030000410000000000310435000000240120003900000022030000390000000000310435000007ad01000041000000000012043500000004012000390000002002000039000000000021043500000007010000290000004001100210000007b0011001c700001e550001043000000000010004150000000d0110008a0006000500100218000d00000000001d0000083d0100004100000000001004390000000001000410000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c700008002020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000000101004b0000108c0000c13d0000000701000029000000ff0110018f000000010110008c0000000001000019000000010100603900000006020000290000000502200270000000000201001f0000108f0000c13d000001000100008a000000000200041a000000000112016f00000001011001bf000000050200006b000001800000613d000200010000003d000001830000013d00000002020003670000000a0300002900000005050000290000000806000029000000000452034f000000000404043b000000200330003900000000004304350000002005500039000000000465004b00000f930000413d0000001c02000039000000000202041a000500000002001d0000000a020000290000000002020433000000000202004b00000fbf0000613d000880100000003d0000000003000019000b00000003001d000000050230021000000009022000290000000002020433000000000321004b00000fad0000813d0000000000100435000000200020043f000000000100041400000fb00000013d0000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700000008020000291e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b0300002900000001033000390000000a020000290000000002020433000000000223004b00000fa30000413d000000050110006c00000fef0000c13d0000000e01000039000b00000001001d000000000101041a000000020110008c000010540000c13d000000400100043d00000044021000390000087e03000041000000000032043500000024021000390000001f0300003900000c990000013d000000000302004b000000000300001900000fd10000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000343016f0000000102200210000000000423019f0000101a0000013d000007ad01000041000000070400002900000000001404350000000a030000290000012401300039000007ae0200004100000000002104350000010401300039000007af020000410000000000210435000000e40130003900000027020000390000000000210435000000c401300039000000200200003900000000002104350000079601000041000007960240009c00000000040180190000004001400210000007b0011001c700001e5500010430000000400100043d00000044021000390000087203000041000000000032043500000024021000390000000d0300003900000c990000013d00000000010104330000081601100197000000080110006c000010990000813d000000400100043d00000064021000390000086403000041000000000032043500000044021000390000086503000041000010950000013d000008140300004100000020060000390000000005000019000000000706001900000080067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b000010040000413d000000a005700039000000000424004b000010180000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010220021000000001042001bf000000000041041b000000010540019000000001034002700000007f0230018f000000000203c0190000001f0320008c00000000030000190000000103002039000000000334013f00000001033001900000010a0000c13d000000400300043d000000000505004b000010350000613d0000000000100435000000000102004b000010380000613d000008140100004100000000040000190000000005340019000000000601041a000000000065043500000001011000390000002004400039000000000524004b0000102d0000413d000010380000013d000001000100008a000000000114016f00000000001304350000079604000041000007960130009c00000000030480190000004001300210000007960320009c00000000020480190000006002200210000000000112019f0000000002000414000007960320009c0000000002048019000000c002200210000000000112019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000501043b0000000001000414000007960210009c0000079601008041000000c0011002100000079c011001c70000800d020000390000000203000039000008530400004100000c8f0000013d00000002010000390000000b02000029000000000012041b00000007010000290000079d01100197000a00000001001d00000000001004350000000f01000039000900000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000603000029000808160030019b0000000102200190000015000000613d000000000101043b000000000101041a00000008011002700000081601100197000000080110006c000011e40000c13d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000101041a000000ff01100190000012430000c13d000000400100043d00000064021000390000087c03000041000000000032043500000044021000390000087d03000041000000000032043500000024021000390000002203000039000008690000013d00000006010000290000000501100270000000000100001f000000400100043d00000064021000390000083e03000041000000000032043500000044021000390000083f03000041000000000032043500000024021000390000002e03000039000008690000013d000000080130006a000000000012041b0000000b0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a00000008032002700000081603300197000000080330006a000008160430009c0000065f0000213d000008620220019700000008033002100000086303300197000000000223019f000000000021041b0000001001000039000000000101041a000000000200041a0000079d0110019700000010022002700000079d0220019700000008030000291e5318cf0000040f0000000b010000291e531a030000040f000000400100043d0000000a02000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d020000390000000203000039000008680400004100000a280000013d0000000103000039000000000103041a0000079f011001970000000802000029000000000121019f000000000013041b000000400100043d000000000021043500000796050000410000000002000414000007960420009c0000000002058019000007960410009c00000000010580190000004001100210000000c002200210000000000112019f000007a3011001c70000800d02000039000007a1040000411e531e490000040f0000000101200190000015000000613d00002710010000390000001802000039000100000002001d000000000012041b000000400200043d00000000001204350000000001000414000007960310009c00000796040000410000000001048019000007960320009c00000000020480190000004002200210000000c001100210000000000121019f000007a3011001c70000800d0200003900000001030000390000082a040000411e531e490000040f0000000101200190000015000000613d000000000100041a0000ff0001100190000001960000613d0000000b0100006b000012f80000c13d000000400100043d00000044021000390000084f0300004100000dc00000013d000000400100043d000400000001001d0000002002100039000007ab01000041000200000002001d00000000001204350000081d010000410000000000100439000000060100002900000004001004430000006001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000402000029000000400220003900000000001204350000081d01000041000000000010043900000006010000290000000400100443000000070100002900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000040200002900000060022000390000000000120435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000404000029000000a0024000390000000303000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000007ac0140009c000000620000213d0000000403000029000000c001300039000000400010043f00000796010000410000000204000029000007960240009c000000000401801900000040024002100000000003030433000007960430009c00000000030180190000006003300210000000000223019f0000000003000414000007960430009c0000000003018019000000c001300210000000000121019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000400200043d0000002203200039000000050400002900000000004304350000081f0300004100000000003204350000000203200039000000000013043500000796040000410000000001000414000007960310009c0000000001048019000007960320009c000707960000004500000000020480190000004002200210000000c001100210000000000112019f00000820011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000007960320009c00000007030000290000000003024019000700000003001d0000000a03000029000008210330009c00000f570000213d000000000101043b00000060032000390000000a0400002900000000004304350000004003200039000000090400002900000000004304350000002003200039000000080400002900000000004304350000000000120435000000000000043500000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000007020000290000004002200210000000000121019f00000822011001c700000001020000391e531e4e0000040f000000000301001900000060033002700000079603300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000011a90000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000011a20000413d000000000605004b000011b70000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013610000613d00000000010004330000079d02100198000012f40000613d000000400300043d000007ad0200004100000000002304350000000402300039000000200400003900000000004204350000000b0410014f00000044023000390000079601000041000007960530009c00000000010340190000002403300039000000400110021000000823011001c70000079d04400198000013810000c13d000000190400003900000000004304350000082503000041000000000032043500001e5500010430000000010330027000000000543200d9000000000543004b0000000003048019000000000432004b0000065f0000413d000000000010043500000000043200490000085903400041000000000303041a0000079603300197000000000373004b0000123d0000a13d000000000300001900000000020400190000000b0700002900000c4d0000013d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000600000002001d000008600220009c000000620000213d000000000101043b000000000101041a00000006030000290000006002300039000000400020043f00000020043000390000000802000029000500000004001d000000000024043500000001020000390000000000230435000000400230003900000080011002700000081601100197000400000002001d00000000001204350000000a0100002900000000001004350000000901000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d00000006020000290000000002020433000000000202004b000000000101043b000000000201041a0000087302200197000000010220c1bf0000000503000029000000000303043300000008033002100000086303300197000000000232019f0000000403000029000000000303043300000080033002100000087403300197000000000232019f000000000021041b000000400100043d000000080200002900000000002104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d02000039000000020300003900000875040000410000000a050000291e531e490000040f0000000101200190000015000000613d00000007010000291e531a030000040f000010700000013d000000010300008a000000000334004b0000000b070000290000065f0000613d000000010340003900000c4d0000013d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000008600320009c000000620000213d000000000101043b0000006003200039000000400030043f000000000101041a000000800310027000000816033001970000004004200039000600000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000081601100197000800000001001d00000000001204350000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000001502000039000000000202041a0000079d022001980000127e0000613d0000001703000039000000000303041a000000070330014f0000079d0330019700000000322300d9000000000321004b0000065f0000413d00000000012100490000001a02000039000000000202041a000000000221004b0000000002000019000012960000a13d0000001402000039000000000202041a0000001b03000039000000000303041a000000000431004b000012960000813d0000001904000039000000000404041a000000000541004b0000065f0000413d000000000541004900000000612500a9000000000602004b000012940000613d00000000622100d9000000000252004b0000065f0000c13d000000000243004900000000122100d900000008312000b9000000080300006b0000129c0000613d00000008431000fa000000000223004b0000065f0000c13d0000001402000039000000000202041a000000000302004b0000099c0000613d00000000212100d90000000602000029000000000202043300000816022001970000000002210049000000000112004b00000000010000190000000101002039000000000101004b000000000200c019000808160020019c0000141a0000c13d000000400100043d00000064021000390000087803000041000000000032043500000044021000390000087903000041000000000032043500000024021000390000002f03000039000008690000013d000000000101043b00000060032000390000000a0400002900000000004304350000004003200039000000060400002900000000004304350000002003200039000000080400002900000000004304350000000000120435000000000000043500000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000007020000290000004002200210000000000121019f00000822011001c700000001020000391e531e4e0000040f000000000301001900000060033002700000079603300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000012de0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000012d70000413d000000000605004b000012ec0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013010000613d0000000001000433000a00000001001d0000079d01100198000013420000c13d000000400100043d00000044021000390000082e0300004100000d2c0000013d000000070100006b000013110000c13d000000400100043d00000044021000390000084e0300004100000000003204350000002402100039000000170300003900000c990000013d000000400200043d0000001f0430018f00000005053002720000130e0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013060000413d000000000604004b00000cf00000613d00000ce30000013d0000001002000039000000000102041a0000079f011001970000000b011001af000000000012041b00000011030000390000000701000029000000000013041b000000800400043d000007a40140009c000000620000213d0000001301000039000000000601041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f00000001066001900000010a0000c13d000000200650008c0000133a0000413d0000001f06400039000000050660027000000814076000410000081406000041000000200840008c000000000607801900000000001004350000001f0550003900000005055002700000081405500041000000000756004b0000133a0000813d000000000006041b0000000106600039000000000756004b000013360000413d000000200540008c000013750000413d00000000001004350000000a07400180000013860000c13d00000020060000390000081405000041000013910000013d00000000001004350000000901000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a0000000103200039000000000031041b000000090120006b000013710000c13d0000000a010000290000000b020000291e5315ec0000040f000000000100001900001e540001042e000000010100008a000000000112004b0000065f0000613d00000001032000390000000a0130006c00000df20000413d0000039a0000013d000000400200043d0000001f0430018f00000005053002720000136e0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013660000413d000000000604004b00000cf00000613d00000ce30000013d000000400100043d00000044021000390000082d0300004100000a710000013d000000000504004b00000000060000190000139e0000613d0000000305400210000000010600008a000000000556022f000000000565013f000000a00600043d000000000556016f0000000104400210000000000645019f0000139e0000013d0000001e0400003900000000004304350000082403000041000000000032043500001e550001043000000814050000410000002006000039000000000800001900000080096000390000000009090433000000000095041b000000200660003900000001055000390000002008800039000000000978004b000013890000413d000000000747004b0000139c0000813d0000000307400210000000f80770018f000000010800008a000000000778022f000000000787013f00000080066000390000000006060433000000000676016f000000000065041b000000010440021000000001064001bf000000000061041b00000841040000410000001405000039000000000045041b000000000402041a000000000503041a000000400200043d000000200320003900000060070000390000000000730435000000010760019000000001086002700000007f0380018f000000000308c01900000000005204350000001f0530008c00000000050000190000000105002039000000000856013f0000079d0540019700000001048001900000010a0000c13d000000600420003900000000003404350000008004200039000000000707004b000013c70000613d0000000000100435000000000103004b0000000001000019000013cd0000613d000008140600004100000000010000190000000007410019000000000806041a000000000087043500000001066000390000002001100039000000000731004b000013bf0000413d000013cd0000013d000001000100008a000000000116016f0000000000140435000000000103004b000000200100003900000000010060190000004003200039000008410400004100000000004304350000079603000041000007960420009c000000000203801900000040022002100000008001100039000007960410009c00000000010380190000006001100210000000000121019f0000000002000414000007960420009c0000000002038019000000c002200210000000000121019f0000079c011001c70000800d02000039000000020300003900000842040000411e531e490000040f0000000101200190000015000000613d0000000601000029000b079d0010019b000000000100041a0000ff0001100190000001960000613d00000009010000290000079d011001980000001602000039000000000302041a0000079f03300197000000000313019f000000000032041b0000000002000019000013f40000613d0000079d321001290000001504000039000000000304041a0000079f03300197000000000223019f000a00000004001d000000000024041b000000400200043d000000000012043500000796010000410000000003000414000007960430009c0000000003018019000007960420009c00000000020180190000004001200210000000c002300210000000000112019f000007a3011001c70000800d02000039000000010300003900000843040000411e531e490000040f0000000101200190000015000000613d0000000a01000029000000000101041a0000079d011001980000145e0000c13d000000400100043d0000000503000029000000040230006b000014640000a13d00000044021000390000084d03000041000000000032043500000024021000390000001a0300003900000c990000013d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a000000800320027000000816033001970000000803300029000008160430009c0000065f0000213d000008760220019700000080033002100000087403300197000000000223019f000000000021041b0000001201000039000000000301041a0000000802300029000000000332004b0000000003000019000000010300403900000001033001900000065f0000c13d000000000021041b00000007010000291e531a030000040f0000001001000039000000000101041a0000079d01100197000000070200002900000008030000291e5318cf0000040f000000400100043d0000000802000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d02000039000000020300003900000877040000410000000a050000291e531e490000040f0000000101200190000015000000613d00000001010000390000000b02000029000000000012041b000000000100001900001e540001042e0000000b0100006b0000146d0000c13d000000400100043d00000044021000390000084603000041000014690000013d0000000303000029000000050230006b000014940000a13d00000044021000390000084c0300004100000000003204350000002402100039000000010300002900000c990000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000000201004b0000065f0000613d00000845020000410000000000200439000000010110008a000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000060110014f0000079d011001970000001702000039000000000302041a0000079f03300197000000000113019f000000000012041b000014100000013d000000000001042f0000000302000029000008470220009c000014a00000413d00000064021000390000084a03000041000000000032043500000044021000390000084b03000041000000000032043500000024021000390000002a03000039000008690000013d00000019020000390000000403000029000000000032041b0000001a020000390000000504000029000000000042041b0000001b020000390000000305000029000000000052041b0000004002100039000000000052043500000020021000390000000000420435000000000031043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f00000848011001c70000800d02000039000000010300003900000831040000411e531e490000040f0000000101200190000015000000613d000000000100041a0000ff0001100190000001960000613d0000001c010000390000000602000029000000000021041b000000400100043d000000000021043500000796040000410000000002000414000007960320009c0000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d020000390000000103000039000b00000003001d00000849040000411e531e490000040f0000000101200190000015000000613d000000080600002900000010016002100000079a01100197000000000200041a0000079b03200197000000000113019f000000000010041b0000000001000414000007960310009c0000079601008041000000c0011002100000079c011001c700000010022002700000079d052001970000800d0200003900000003030000390000079e040000411e531e490000040f0000000101200190000015000000613d000000020100006b00000c920000c13d000000000200041a0000084001200197000000000010041b000000400100043d0000000b03000029000000000031043500000796020000410000000005000414000007960450009c0000000005028019000007960410009c00000000010280190000004001100210000000c002500210000000000112019f000007a3011001c70000800d02000039000007b10400004100000c8f0000013d000000000100001900001e550001043000000000430104340000000001320436000000000203004b0000150e0000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000532004b000015070000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000020030000390000000004310436000000003202043400000000002404350000004001100039000000000402004b000015240000613d000000000400001900000000051400190000000006430019000000000606043300000000006504350000002004400039000000000524004b0000151d0000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d0000086102000041000000830310008c000000000300001900000000030220190000086104100197000000000504004b0000000002008019000008610440009c000000000203c019000000000202004b000015520000613d00000002040003670000000402400370000000000602043b0000002402400370000000000202043b0000079d0320009c000015520000213d0000004403400370000000000303043b0000006405400370000000000705043b000007a40570009c000015520000213d0000002305700039000000000515004b000015520000813d0000000405700039000000000454034f000000000504043b000007a40450009c000015520000213d000000050850021000000024047000390000000007840019000000000117004b000015520000213d0000000001060019000000000001042d000000000100001900001e5500010430000008870210009c000015590000813d0000006001100039000000400010043f000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000008880210009c000015640000813d0000004001100039000000400010043f000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000007a40310009c000015770000213d0000000102200190000015770000c13d000000400010043f000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000015840000c13d000000000001042d000000400100043d000000440210003900000852030000410000000000320435000007ad020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e550001043000000010021002100000079a02200197000000000300041a0000079b04300197000000000224019f000000000020041b00000796020000410000000004000414000007960540009c0000000004028019000000c0024002100000079d061001970000079c012001c700000010023002700000079d052001970000800d0200003900000003030000390000079e040000411e531e490000040f0000000101200190000015ab0000613d000000000001042d000000000100001900001e55000104300000079d022001970000000000200435000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015bc0000613d000000000101043b000000000001042d000000000100001900001e55000104300001000000000002000000000301041a000100000002001d000000000223004b000015d10000a13d000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015d70000613d000000000101043b0000000101100029000000000001042d0000087a0100004100000000001004350000003201000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e55000104300000000002010019000000400100043d000008880310009c000015e60000813d0000004003100039000000400030043f000000000202041a00000020031000390000002004200270000000000043043500000796022001970000000000210435000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300005000000000002000500000002001d0000079d01100197000200000001001d00000000001004350000000b01000039000300000001001d000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000016360000613d000000000101043b000000000101041a000400000001001d0000000201000039000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f00000004030000290004079d0030019b0000000102200190000016360000613d000000000101043b000000000101041a000100000001001d0000000301000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000016360000613d00000005020000290000079d07200197000000000101043b000000000201041a0000079f02200197000000000272019f000000000021041b0000000001000414000007960210009c0000079601008041000000c0011002100000079c011001c70000800d0200003900000004030000390000088904000041000000020500002900000004060000291e531e490000040f0000000101200190000016360000613d0000000401000029000000050200002900000001030000291e5316380000040f000000000001042d000000000100001900001e55000104300009000000000002000900000003001d0000079d031001970000079d01200197000700000001001d000800000003001d000000000113004b000017b20000613d000000090100006b000017b20000613d000000080100006b000016f40000613d000000080100002900000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000201043b000000000102041a000600000001001d000000000101004b000017dc0000613d000500000002001d000000000020043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000400200043d000008880320009c000017df0000813d000000000101043b0000004003200039000000400030043f000000060300002900030001003000920000000301100029000000000101041a0000079603100197000000000332043600000020041002700000000000430435000600000004001d000000090140006c000017ea0000413d0000000001020433000400000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000040300002900000796033001970000000102200190000017b50000613d000000000101043b0000086b0210009c000017b60000813d0000000604000029000000090240006a000000000113004b000400000002001d000016a30000c13d000008120120009c000017bd0000213d0000000501000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000301100029000000000201041a000007960220019700000004040000290000002003400210000000000232019f000000000021041b000016de0000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000017b50000613d000000000101043b000008550210009c000017b60000213d000008570210009c0000000403000029000017c70000813d0000088a0230009c000017bd0000813d000000400400043d0000085b0240009c000017df0000213d0000004002400039000000400020043f0000000001140436000300000001001d00000000003104350000000501000029000000000201041a000007a40120009c000017df0000213d000200000004001d000100000002001d00000001012000390000000502000029000000000012041b000000000020043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000101100029000000020200002900000000020204330000079602200197000000030300002900000000030304330000002003300210000000000223019f000000000021041b0000000404000029000000400100043d000000200210003900000000004204350000000602000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f0000081a011001c70000800d0200003900000002030000390000088b0400004100000008050000291e531e490000040f0000000101200190000017b30000613d000000070100006b000017b20000613d000000070100002900000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000301043b000000000203041a000000000102004b000800000003001d000017570000613d000600000002001d000000000030043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000400200043d0000085b0320009c000017df0000213d000000000101043b0000004003200039000000400030043f000000060300002900040001003000920000000401100029000000000101041a00000796031001970000000003320436000000200410027000000000004304350000000901400029000900000001001d000600000004001d000000000141004b000000000100001900000001010040390000000101100190000017ea0000c13d0000000001020433000500000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000050300002900000796033001970000000102200190000017b50000613d000000000101043b000008550210009c000017b60000213d000000000113004b000017610000c13d0000000901000029000008120110009c0000000801000029000017bd0000213d000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000401100029000000000201041a000007960220019700000009030000290000002003300210000000000232019f0000179a0000013d000000400100043d0000085b0210009c000017df0000213d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000600000000001d000017610000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000017b50000613d000000000101043b000008550210009c000017b60000213d000007960210009c0000000803000029000017c70000213d0000000902000029000008120220009c000017bd0000213d000000400400043d0000085b0240009c000017df0000213d0000004002400039000000400020043f00000000021404360000000901000029000500000002001d0000000000120435000000000203041a000007a40120009c000017df0000213d000400000004001d000300000002001d0000000101200039000000000013041b000000000030043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000301100029000000040200002900000000020204330000079602200197000000050300002900000000030304330000002003300210000000000223019f000000000021041b0000000604000029000000400100043d000000200210003900000009030000290000000000320435000000000041043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f0000081a011001c70000800d0200003900000002030000390000088b0400004100000007050000291e531e490000040f0000000101200190000017b30000613d000000000001042d000000000100001900001e5500010430000000000001042f000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e03000041000017cd0000013d000000400100043d00000064021000390000088c03000041000000000032043500000044021000390000088d03000041000000000032043500000024021000390000002703000039000017d00000013d000000400100043d00000064021000390000088e03000041000000000032043500000044021000390000088f030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000000400100043d0000085b0210009c000017e50000a13d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300000004002100039000000400020043f0000002002100039000000000002043500000000000104350000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e550001043000040000000000020000081d0100004100000000001004390000000001000412000300000001001d00000004001004430000004001000039000000240010044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b0000079d011001970000000002000410000200000002001d000000000112004b000018390000c13d0000081d010000410000000000100439000000030100002900000004001004430000002001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000400000001001d000007a90100004100000000001004390000000001000414000007960210009c0000079601008041000000c001100210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000000040110006c000018390000c13d0000081d01000041000000000010043900000003010000290000000400100443000000240000044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000000000001042d000000400100043d000400000001001d0000002002100039000007ab01000041000100000002001d00000000001204350000081d010000410000000000100439000000030100002900000004001004430000006001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b0000000402000029000000400220003900000000001204350000081d01000041000000000010043900000003010000290000000400100443000000800100003900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000000040200002900000060022000390000000000120435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b0000000404000029000000a0024000390000000203000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000008900140009c000018970000813d0000000403000029000000c001300039000000400010043f00000796010000410000000104000029000007960240009c000000000401801900000040024002100000000003030433000007960430009c00000000030180190000006003300210000000000223019f0000000003000414000007960430009c0000000003018019000000c001300210000000000121019f0000079c011001c700008010020000391e531e4e0000040f00000001022001900000189d0000613d000000000101043b000000000001042d000000000001042f0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e55000104300000086b0210009c000018a20000813d000000000001042d000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000008570210009c000018ba0000813d000000000001042d000000400100043d00000064021000390000088e03000041000000000032043500000044021000390000088f030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300005000000000002000000400400043d000000440540003900000000003504350000002003400039000008910500004100000000005304350000079d022001970000002405400039000000000025043500000044020000390000000000240435000008920240009c000019b60000813d0000079d021001970000008005400039000000400050043f000007ac0140009c000019b60000213d000000c001400039000000400010043f0000002001000039000300000001001d0000000000150435000000a0014000390000089306000041000000000061043500000000060404330000000001000414000000040420008c0000191f0000c13d0000000101000032000019600000613d000007a40210009c000019b60000213d0000001f02100039000000200300008a000000000232016f0000003f02200039000000000232016f000000400900043d0000000002290019000000000392004b00000000030000190000000103004039000007a40420009c000019b60000213d0000000103300190000019b60000c13d000000400020043f0000001f0210018f0000000003190436000000030400036700000005011002720000190f0000613d000000000500001900000005065002100000000007630019000000000664034f000000000606043b00000000006704350000000105500039000000000615004b000019070000413d000000000502004b000019610000613d0000000501100210000000000414034f00000000011300190000000302200210000000000301043300000000032301cf000000000323022f000000000404043b0000010002200089000000000424022f00000000022401cf000000000232019f0000000000210435000019610000013d000100000005001d0000079604000041000007960530009c00000000030480190000004003300210000007960560009c00000000060480190000006005600210000000000535019f000007960310009c0000000001048019000000c001100210000000000115019f000200000002001d1e531e490000040f000300000001035500000000030100190000006003300270000107960030019d0000079605300198000019790000613d0000001f0350003900000894033001970000003f033000390000089503300197000000400900043d0000000003390019000000000493004b00000000040000190000000104004039000007a40630009c000000020a000029000019b60000213d0000000104400190000019b60000c13d000000400030043f0000001f0450018f00000000035904360000000505500272000019500000613d000000000600001900000005076002100000000008730019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000019480000413d000000000604004b0000197c0000613d0000000505500210000000000151034f00000000055300190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000197c0000013d00000060090000390000000002000415000000050220008a00000005022002100000000001090433000000000301004b000019840000c13d000200000009001d0000083d0100004100000000001004390000000401000039000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c700008002020000391e531e4e0000040f0000000102200190000019e70000613d0000000002000415000000050220008a000019970000013d00000060090000390000008003000039000000020a00002900000000010904330000000102200190000019d30000613d0000000002000415000000040220008a0000000502200210000000000301004b000019870000613d0000000502200270000000000209001f000019a10000013d000200000009001d0000083d0100004100000000001004390000000400a0044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c700008002020000391e531e4e0000040f0000000102200190000019e70000613d0000000002000415000000040220008a0000000502200210000000000101043b000000000101004b0000000209000029000019e80000613d00000000010904330000000502200270000000000209001f000000000201004b000019b50000613d0000086102000041000000200310008c000000000300001900000000030240190000086101100197000000000401004b000000000200a019000008610110009c000000000203c019000000000102004b000019bc0000c13d00000020019000390000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000019bc0000c13d000000000101004b000019be0000613d000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e5500010430000000400100043d00000064021000390000089603000041000000000032043500000044021000390000089703000041000000000032043500000024021000390000002a030000390000000000320435000007ad0200004100000000002104350000000402100039000000030300002900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000000000201004b000019fa0000c13d000000400200043d000300000002001d000007ad010000410000000000120435000000040120003900000001020000291e5315150000040f000000030400002900000000014100490000079602000041000007960310009c0000000001028019000007960340009c000000000402801900000040024002100000006001100210000000000121019f00001e5500010430000000000001042f000000400100043d00000044021000390000089803000041000000000032043500000024021000390000001d030000390000000000320435000007ad0200004100000000002104350000000402100039000000030300002900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e55000104300000079602000041000007960410009c0000000001028019000007960430009c000000000302801900000040023002100000006001100210000000000121019f00001e550001043000050000000000020000079d01100197000500000001001d00000000001004350000000201000039000300000001001d000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000101041a000400000001001d000000050100002900000000001004350000000f01000039000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000400200043d000008870320009c00001be60000813d000000000101043b0000006003200039000000400030043f000000000301041a0000008001300270000008160110019700000040042000390000000000140435000000ff043001900000000004000019000000010400c0390000000004420436000000080230027000000816022001970000000000240435000000000312004b0000000003000019000000050500002900001a480000a13d0000000002120049000008990120009c00001c210000813d0000001801000039000000000301041a00000000412300a900000000422100d9000000000232004b00001c210000c13d0000001402000039000000000202041a000000000302004b00001bca0000613d00000000132100d90000000402000029000000000132004b00001ad70000a13d000200000003001d000000000105004b00001bd00000613d00000000005004350000000301000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d00000002030000290000000402300069000000000101043b000000000101041a000400000002001d000200000001001d000000000121004b00001bda0000413d000000050100002900000000001004350000000301000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d00000004030000290000000202300069000000000101043b000000000021041b0000000401000039000000000201041a0000000002320049000000000021041b000000400100043d00000000003104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d0200003900000003030000390000089a04000041000000050500002900000000060000191e531e490000040f000000010120019000001bb60000613d000000050100002900000000001004350000000b01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000101041a00000000000004350000089b02000041000000000202041a0000079d011001970000079d0220019700000004030000291e5316380000040f000000400100043d0000000d04000039000000000204041a000000000302004b00001be40000613d00000000004004350000085b0310009c00001be60000213d000200000004001d0000004003100039000000400030043f0000085a02200041000100000002001d000000000202041a0000079603200197000000000331043600000020042002700000000000430435000300000004001d000000040240006c00001c210000413d0000000001010433000500000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f00000005030000290000079603300197000000010220019000001bb80000613d000000000101043b000008550210009c00001bb90000213d0000000304000029000000040240006a000000000113004b00001b620000c13d000008120120009c000000020100002900001bc00000213d00000000001004350000002001200210000000010300002900001b5d0000013d000000000132004b00001b610000813d000000000105004b00001c010000613d00040000002300510000000403000039000000000203041a0000000401200029000000000221004b00000000020000190000000102004039000000010220019000001c210000c13d000200000003001d000000000013041b00000000005004350000000301000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d00000000003104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d0200003900000003030000390000089a04000041000000000500001900000005060000291e531e490000040f000000010120019000001bb60000613d0000000b01000039000000200010043f0000089b01000041000000000101041a000300000001001d0000000501000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000201041a00000003010000290000079d011001970000079d0220019700000004030000291e5316380000040f000000400100043d0000000202000029000000000202041a0000088a0220009c00001c130000813d0000000d04000039000000000204041a000000000302004b000500000004001d00001b830000613d00000000004004350000085b0310009c00001be60000213d0000004003100039000000400030043f0000085a02200041000200000002001d000000000202041a0000079603200197000000000331043600000020022002700000000000230435000400040020002d000000040220006b00000000020000190000000102004039000000010220019000001c210000c13d0000000001010433000300000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f00000003030000290000079603300197000000010220019000001bb80000613d000000000101043b0000086b0210009c00001bb90000813d000000000113004b000000050200002900001b8b0000c13d0000000401000029000008120110009c00001bc00000213d0000000000200435000000040100002900000020011002100000000203000029000000000203041a0000079602200197000000000112019f000000000013041b000000000001042d000500000002001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000010220019000001bb80000613d000000000101043b000008550210009c00001bb90000213d000007960210009c0000000205000029000000050400002900001bec0000213d000008120240009c00001bc00000213d000000400200043d0000085b0320009c00001be60000213d0000004003200039000000400030043f00000000031204360000000000430435000000000105041a000007a40410009c00001bab0000a13d00001be60000013d0000085b0210009c00001be60000213d0000004002100039000000400020043f00000020021000390000000000020435000000000001043500001b8b0000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000010220019000001bb80000613d000000000101043b000008550210009c00001bb90000213d000008570210009c000000050500002900001bec0000813d00000004020000290000088a0220009c00001bc00000813d000000400200043d0000085b0320009c00001be60000213d0000004003200039000000400030043f000000000312043600000004010000290000000000130435000000000105041a000007a40410009c00001be60000213d0000000104100039000000000045041b00000000005004350000000002020433000007960220019700000000030304330000002003300210000000000223019f0000085901100041000000000021041b000000000001042d000000000100001900001e5500010430000000000001042f000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e0300004100001bf20000013d000000400100043d00000064021000390000088c03000041000000000032043500000044021000390000088d0300004100000000003204350000002402100039000000270300003900001bf50000013d0000087a0100004100000000001004350000001201000039000000040010043f0000087b0100004100001e5500010430000000400100043d0000006402100039000008a10300004100000000003204350000004402100039000008a20300004100000000003204350000002402100039000000210300003900001bf50000013d000000400100043d00000064021000390000089f0300004100000000003204350000004402100039000008a00300004100000000003204350000002402100039000000220300003900001bf50000013d0000085b0210009c00001c1c0000a13d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000400100043d00000064021000390000088e03000041000000000032043500000044021000390000088f030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000000400100043d00000044021000390000089e03000041000000000032043500000024021000390000001f030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e550001043000000064021000390000089c03000041000000000032043500000044021000390000089d0300004100000000003204350000002402100039000000300300003900001bf50000013d0000004002100039000000400020043f0000002002100039000000000002043500000000000104350000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e55000104300000001503000039000000000303041a0000079d0330019800001c330000613d0000001704000039000000000404041a000000000114013f0000079d0110019700000000313100d9000000000312004b00001c4c0000413d00000000021200490000001a01000039000000000101041a000000000112004b000000000100001900001c4b0000a13d0000001401000039000000000101041a0000001b03000039000000000303041a000000000432004b00001c4b0000813d0000001904000039000000000404041a000000000542004b00001c4c0000413d000000000542004900000000621500a9000000000601004b00001c490000613d00000000611200d9000000000151004b00001c4c0000c13d000000000143004900000000211200d9000000000001042d0000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e55000104300000006003300210000000200510003900000000003504350000003403100039000000000043043500000000002104350000005401100039000000000001042d000007a20420009c00001c7a0000813d00000005052002100000003f045000390000087106400197000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000007a40860009c00001c7a0000213d000000010770019000001c7a0000c13d000000400060043f00000000002404350000000002150019000000000332004b00001c800000213d000000000312004b00001c780000a13d00000002030003670000000005040019000000000613034f000000000606043b000000200550003900000000006504350000002001100039000000000621004b00001c710000413d0000000001040019000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e55000104300007000000000002000700000002001d000008990220009c00001ce30000813d000400000001001d0000079d01100197000600000001001d00000000001004350000000f01000039000500000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001ce10000613d0000000603000029000000400400043d000008870240009c00001cf80000813d000000000101043b000000000101041a0000006002400039000000400020043f00000020054000390000000702000029000200000005001d000000000025043500000001020000390000000000240435000300000004001d000000400240003900000080011002700000081601100197000100000002001d000000000012043500000000003004350000000501000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001ce10000613d00000003020000290000000002020433000000000202004b000000000101043b000000000201041a0000087302200197000000010220c1bf0000000203000029000000000303043300000008033002100000086303300197000000000232019f0000000103000029000000000303043300000080033002100000087403300197000000000232019f000000000021041b000000400100043d000000070200002900000000002104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d020000390000000203000039000008750400004100000006050000291e531e490000040f000000010120019000001ce10000613d00000004010000291e531a030000040f000000000001042d000000000100001900001e5500010430000000400100043d0000006402100039000008a30300004100000000003204350000004402100039000008a403000041000000000032043500000024021000390000002c030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300003000000000002000100000001001d0000079d01100197000300000001001d00000000001004350000000f01000039000200000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001d7c0000613d000000000101043b000000000101041a000000ff0110019000001d840000613d000000030100002900000000001004350000000201000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001d7c0000613d000000400200043d000008870320009c00001d990000813d000000000101043b0000006003200039000000400030043f000000000101041a000000800310027000000816033001970000004004200039000200000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000081601100197000300000001001d00000000001204350000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000010220019000001d9f0000613d000000000201043b0000001501000039000000000101041a0000079d01100198000000030800002900001d500000613d0000001703000039000000000303041a000000010330014f0000079d0330019700000000311300d9000000000312004b00001d7e0000413d00000000021200490000001a01000039000000000101041a000000000112004b0000001401000039000000000300001900001d680000a13d000000000301041a0000001b04000039000000000404041a000000000542004b00001d680000813d0000001905000039000000000505041a000000000652004b00001d7e0000413d000000000652004900000000723600a9000000000703004b00001d660000613d00000000733200d9000000000363004b00001d7e0000c13d000000000354004900000000233200d900000000428300a9000000000408004b00001d6e0000613d00000000548200d9000000000334004b00001d7e0000c13d000000000101041a000000000301004b00001da00000613d00000000121200d90000000201000029000000000101043300000816011001970000000001120049000000000221004b00000000020000190000000102002039000000000202004b000000000100c019000000000001042d000000000100001900001e55000104300000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e5500010430000000400100043d00000064021000390000087c03000041000000000032043500000044021000390000087d030000410000000000320435000000240210003900000022030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000001042f0000087a0100004100000000001004350000001201000039000000040010043f0000087b0100004100001e55000104300000001502000039000000000202041a0000079d0220019800001db00000613d0000001703000039000000000303041a000000000113013f0000079d0110019700000000212100d9000000000001042d0000000001000019000000000001042d000500000000000200000000030200190000001c02000039000000000202041a000100000002001d000300000003001d0000000032030434000400000003001d000000000202004b00001de20000613d000280100000003d0000000003000019000500000003001d000000050230021000000004022000290000000002020433000000000321004b00001dd00000813d0000000000100435000000200020043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700000002020000291e531e4e0000040f000000010220019000001de50000613d00001ddb0000013d0000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001de50000613d0000000503000029000000000101043b000000010330003900000003020000290000000002020433000000000223004b00001dbe0000413d000000010110006c00001de70000c13d000000000001042d000000000100001900001e5500010430000000400100043d00000044021000390000087203000041000000000032043500000024021000390000000d030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e55000104300000079d011001970000000103000039000000000203041a0000079f02200197000000000212019f000000000023041b000000400200043d000000000012043500000796010000410000000004000414000007960540009c0000000004018019000007960520009c00000000020180190000004001200210000000c002400210000000000112019f000007a3011001c70000800d02000039000007a1040000411e531e490000040f000000010120019000001e110000613d000000000001042d000000000100001900001e5500010430000000000001042f0000079603000041000007960410009c00000000010380190000004001100210000007960420009c00000000020380190000006002200210000000000112019f0000000002000414000007960420009c0000000002038019000000c002200210000000000112019f0000079c011001c700008010020000391e531e4e0000040f000000010220019000001e280000613d000000000101043b000000000001042d000000000100001900001e550001043000000000050100190000000000200439000000050130008c00001e380000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000631004b00001e300000413d00000796010000410000000002000414000007960420009c0000000002018019000007960430009c00000000030180190000006001300210000000c002200210000000000112019f000008a5011001c700000000020500191e531e4e0000040f000000010220019000001e480000613d000000000101043b000000000001042d000000000001042f00001e4c002104210000000102000039000000000001042d0000000002000019000000000001042d00001e51002104230000000102000039000000000001042d0000000002000019000000000001042d00001e530000043200001e540001042e00001e55000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff496e7465726e616c20766f746520747261636b657200000000000000000000004956540000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff0000000000000000000000000000000000000000ffff0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000020000002600000000000000000ccdd1baf560d2682736fa25752c8ccc0c5fc4079b245b0acf7389776308d5b1f00000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3020000000000000000000000000000000000000000000180000000000000000002000000000000000000000000000000000000000000024000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b02000002000000000000000000000000000000040000000000000000000000008b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f000000000000000000000000000000000000000000000000ffffffffffffff3f08c379a000000000000000000000000000000000000000000000000000000000616c697a696e6700000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e69746900000000000000000000000000000000000000840000000000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249800000002000000000000000000000000000002000000010000000000000000000000000000000000000000000000000000000000000000000000000095d89b4000000000000000000000000000000000000000000000000000000000c6e8d98100000000000000000000000000000000000000000000000000000000e85858d800000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000fc0c546900000000000000000000000000000000000000000000000000000000fc0c546a00000000000000000000000000000000000000000000000000000000ffa1ad7400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f56c854700000000000000000000000000000000000000000000000000000000eac989f700000000000000000000000000000000000000000000000000000000eac989f800000000000000000000000000000000000000000000000000000000f1127ed800000000000000000000000000000000000000000000000000000000e85858d900000000000000000000000000000000000000000000000000000000e90a182f00000000000000000000000000000000000000000000000000000000dd62ed3d00000000000000000000000000000000000000000000000000000000e12f3a6000000000000000000000000000000000000000000000000000000000e12f3a6100000000000000000000000000000000000000000000000000000000e834a83400000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000de032f5800000000000000000000000000000000000000000000000000000000c955725400000000000000000000000000000000000000000000000000000000c955725500000000000000000000000000000000000000000000000000000000d505accf00000000000000000000000000000000000000000000000000000000c6e8d98200000000000000000000000000000000000000000000000000000000c78d598500000000000000000000000000000000000000000000000000000000a4ef1f7700000000000000000000000000000000000000000000000000000000bb22dcca00000000000000000000000000000000000000000000000000000000c32b132500000000000000000000000000000000000000000000000000000000c32b132600000000000000000000000000000000000000000000000000000000c3cda52000000000000000000000000000000000000000000000000000000000bb22dccb00000000000000000000000000000000000000000000000000000000bf38b5c800000000000000000000000000000000000000000000000000000000ab803a7500000000000000000000000000000000000000000000000000000000ab803a7600000000000000000000000000000000000000000000000000000000b6d8f79f00000000000000000000000000000000000000000000000000000000a4ef1f7800000000000000000000000000000000000000000000000000000000a9059cbb000000000000000000000000000000000000000000000000000000009b642de000000000000000000000000000000000000000000000000000000000a3f4df7d00000000000000000000000000000000000000000000000000000000a3f4df7e00000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000009b642de100000000000000000000000000000000000000000000000000000000a011c8cc0000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009a0e7d66000000000000000000000000000000000000000000000000000000009ab24eb0000000000000000000000000000000000000000000000000000000003cf3a02400000000000000000000000000000000000000000000000000000000715018a50000000000000000000000000000000000000000000000000000000084b0196d000000000000000000000000000000000000000000000000000000008e539e8b000000000000000000000000000000000000000000000000000000008e539e8c0000000000000000000000000000000000000000000000000000000091ddadf40000000000000000000000000000000000000000000000000000000084b0196e000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000007cb64758000000000000000000000000000000000000000000000000000000007cb64759000000000000000000000000000000000000000000000000000000007ecebe0000000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000075aa9bc6000000000000000000000000000000000000000000000000000000005c19a95b000000000000000000000000000000000000000000000000000000006fcfff44000000000000000000000000000000000000000000000000000000006fcfff450000000000000000000000000000000000000000000000000000000070a08231000000000000000000000000000000000000000000000000000000005c19a95c00000000000000000000000000000000000000000000000000000000684de1f5000000000000000000000000000000000000000000000000000000004bf5d7e8000000000000000000000000000000000000000000000000000000004bf5d7e900000000000000000000000000000000000000000000000000000000587cde1e000000000000000000000000000000000000000000000000000000003cf3a02500000000000000000000000000000000000000000000000000000000495906570000000000000000000000000000000000000000000000000000000023b872dc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000395093500000000000000000000000000000000000000000000000000000000039509351000000000000000000000000000000000000000000000000000000003a46b1a800000000000000000000000000000000000000000000000000000000313ce567000000000000000000000000000000000000000000000000000000003644e515000000000000000000000000000000000000000000000000000000002ddbd139000000000000000000000000000000000000000000000000000000002ddbd13a000000000000000000000000000000000000000000000000000000002e7ba6ef0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000276801ec00000000000000000000000000000000000000000000000000000000144fa6d6000000000000000000000000000000000000000000000000000000001be1955f000000000000000000000000000000000000000000000000000000001be19560000000000000000000000000000000000000000000000000000000001f8d1d5000000000000000000000000000000000000000000000000000000000144fa6d70000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000000000000000000000000000000000000f56b96c00000000000000000000000000000000000000200000008000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000004000000000000000000000000066de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090f4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d0000000000000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000000000000000000000000000000000000400000000000000000000000006e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9000000000000000000000000000000000000000000000000ffffffffffffff1f310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000190100000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000420000000000000000000000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a00000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000006400000000000000000000000045524332305065726d69743a20696e76616c6964207369676e6174757265000064697361626c656420666f7220766f74696e6720706f77657200000000000000756500000000000000000000000000000000000000000000000000000000000045434453413a20696e76616c6964207369676e6174757265202773272076616c45524332305065726d69743a206578706972656420646561646c696e6500000002000000000000000000000000000000000000200000008000000000000000006c339c0bee516a4df5d7074ba7a974856d609f83666e915aa4a0f90e06989dc5e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf000000000000000000000000000000000000000000000000ffffffffffffff5f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000045434453413a20696e76616c6964207369676e617475726500000000000000004552433230566f7465733a207369676e61747572652065787069726564000000020000000000000000000000000000000000006000000080000000000000000034ebbb9e095e6c8737f99dd9923fb97ec1ca3d25cb39225975a934dd8d7a31b400000000000000000000000000000000000000600000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000005472616e73666572206661696c65642e000000000000000000000000000000003b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f000000000000000000000000000000000000000000000000000000436f6e74696e756f757356657374696e674d65726b6c65496e697469616c697a61626c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c726561ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000000000000000000000000000000de0b6b3a7640000433127dedcff849792656a12f4a9dbc0efeb80df5cce6310f53481a93cd71c71dccb8d94a5bbd764ed844afa20f2581be18d3fa84b36855e86a8f0c9316cba7d42cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd180b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3492064656d616e64206d6f72652072616e646f6d6e657373000000000000000000000000000000000000000000000000000000000000000000000000f48657010200000000000000000000000000000000000060000000000000000000000000914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a46616e20312032313030290000000000000000000000000000000000000000000076657374696e6720656e6473206166746572203431303234343438303020284a76657374696e6720656e64206265666f726520636c696666000000000000000076657374696e6720636c696666206265666f72652073746172740000000000004469737472696275746f723a20746f74616c20697320300000000000000000004469737472696275746f723a20746f6b656e20697320616464726573732830296e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420694f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572d70c1392a974224e639e7a9607dcb2c766826aecfe2dc356f442ce0488b01e1ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000010000d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4000000000000000000000000000000000000000000000000ffffffffffffffbfb3512b0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff9f8000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000ff00000000000000000000000000000000ffffffffffffffffffffffffffffff006f6e5265636f726420746f74616c00000000000000000000000000000000000064656372656173652067726561746572207468616e20646973747269627574697220746f74616c0000000000000000000000000000000000000000000000000064656372656173652067726561746572207468616e206469737472696275746fd81661cef4e40e0f1f97384c033d606e4d6b570554fc3524568d8f9fc84c838861646a7573746d656e74203e206d61782075696e7431323000000000000000006d75737420696e697469616c697a65206265666f72652061646a757374696e6700000000000000000000000000000000000000000000000000010000000000006d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000382062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e20344552433230566f7465733a20667574757265206c6f6f6b7570000000000000000200000000000000000000000000000000000054000000a000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0696e76616c69642070726f6f6600000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000db598eb8e0a3d3d5c2e02e4cab1ee8b65bb20e48fc7b42f4c76272de4cdd2434ff000000000000000000000000000000ffffffffffffffffffffffffffffffff47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d46d61626c65207269676874206e6f7700000000000000000000000000000000004469737472696275746f723a206e6f206d6f726520746f6b656e7320636c61694e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000065640000000000000000000000000000000000000000000000000000000000004469737472696275746f723a20636c61696d206e6f7420696e697469616c697a5265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a20696e73756666696369656e7420616c6c6f77616e6365000000ac657d3615bd618ee537848e2b33acd2a9df67d4776485ab6922b0421d324d2970a082310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000000000000000000000000000000000000000064000000800000000000000000efc1fd16ea80a922086ee4e995739d59b025c1bcea6d1f67855747480c83214b746f6b656e206973206164647265737328302900000000000000000000000000036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0000000000000000000000000000000000000000000000000ffffffffffffffa0000000000000000000000000000000000000000000000000ffffffffffffffc03134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f0000000100000000000000000000000000000000000000000000000000000000dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724323420626974730000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2032322062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2033000000000000000000000000000000000000000000000000ffffffffffffff40a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff805361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656400000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe06f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000000000000000000000000000000000000001000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76766572666c6f77696e6720766f746573000000000000000000000000000000004552433230566f7465733a20746f74616c20737570706c79207269736b73206f45524332303a206d696e7420746f20746865207a65726f206164647265737300636500000000000000000000000000000000000000000000000000000000000045524332303a206275726e20616d6f756e7420657863656564732062616c616e730000000000000000000000000000000000000000000000000000000000000045524332303a206275726e2066726f6d20746865207a65726f2061646472657375696e74313230292e6d617800000000000000000000000000000000000000004469737472696275746f723a20746f74616c416d6f756e74203e207479706528020000020000000000000000000000000000000000000000000000000000000054f32296fc7d5162be6c6559faf50933282ac43b7e5bad0a0471d7c6706ae34d", + "entries": [ + { + "constructorArgs": [], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xd1515bB65096d67895287bC180521007bc71900F", + "txHash": "0xb8c221479a332eaca2945159bc437b6e8e9fee1a8c03387fd9ca348fb18a6aca" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json new file mode 100644 index 00000000..a99fe63d --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json @@ -0,0 +1,203 @@ +{ + "sourceName": "contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol", + "contractName": "ContinuousVestingMerkleDistributorFactory", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "distributor", + "type": "address" + } + ], + "name": "DistributorDeployed", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_cliff", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "deployDistributor", + "outputs": [ + { + "internalType": "contract ContinuousVestingMerkleDistributor", + "name": "distributor", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "distributors", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getImplementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_cliff", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "predictDistributorAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x0001000000000002000f000000000002000000000001035500000000030100190000006003300270000000d2033001970000000102200190000000260000c13d0000008002000039000000400020043f000000040230008c000001b90000413d000000000201043b000000e002200270000000d60420009c000000560000213d000000d90420009c0000008d0000613d000000da0220009c000001b90000c13d0000000002000416000000240330008c000001b90000413d000000000202004b000001b90000c13d0000000401100370000000000101043b000000000200041a000000000221004b000001b90000813d034202a20000040f0000000302200210000000000101041a000000000121022f000000d401100197000000ff0220008c0000000001002019000000850000013d0000000002000416000000000202004b000001b90000c13d0000001f02300039000000d302200197000000a002200039000000400020043f0000001f0230018f0000000504300272000000390000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000310000413d000000000502004b000000480000613d0000000504400210000000000141034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000200130008c000001b90000413d000000a00100043d000000d40210009c000001b90000213d000000800010043f000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000d501000041000003430001042e000000d70120009c000000b10000613d000000d80120009c000001b90000c13d0000000001000416000000000101004b000001b90000c13d0000000001030019034202350000040f034202af0000040f000000400400043d000b00000004001d0000003802400039000000000300041000000000003204350000002402400039000000db0300004100000000003204350000000002000412000d00000002001d000c00000000001d000a00000001001d0000800501000039000000440300003900000000040004150000000d0440008a0000000504400210000000dc020000410342031e0000040f0000000b030000290000001402300039000000000012043500000058013000390000000a020000290000000000210435000000dd0100004100000000001304350000000c013000390000003702000039034203080000040f0000000b030000290000007802300039000000000012043500000043013000390000005502000039034203080000040f000000d401100197000000400200043d0000000000120435000000d201000041000000d20320009c00000000020180190000004001200210000000de011001c7000003430001042e0000000002000416000001440430008c000001b90000413d000000000202004b000001b90000c13d0000000402100370000000000c02043b000000d402c0009c000001b90000213d0000002402100370000000000d02043b0000004402100370000000000402043b000000e00240009c000001b90000213d0000002302400039000000000232004b000001b90000813d0000000405400039000000000251034f000000000202043b000000e10620009c000000ab0000813d0000001f06200039000000200b00008a0000000006b6016f0000003f066000390000000006b6016f000000e20760009c000000c20000a13d000000f30100004100000000001004350000004101000039000000040010043f000000f40100004100000344000104300000000001000416000000000101004b000001b90000c13d0000000001000412000f00000001001d000e00000000001d0000800501000039000000440300003900000000040004150000000f0440008a0000000504400210000000dc020000410342031e0000040f000000d401100197000000800010043f000000df01000041000003430001042e0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000334004b000001b90000213d0000002003500039000000000331034f0000001f0420018f0000000505200272000000d70000613d00000000060000190000000507600210000000000873034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b000000cf0000413d000000000604004b000000e60000613d0000000505500210000000000353034f0000000304400210000000a005500039000000000605043300000000064601cf000000000646022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000363019f0000000000350435000000a0022000390000000000020435000000c402100370000000000602043b000000a402100370000000000502043b0000008402100370000000000f02043b0000006402100370000000000e02043b000000e402100370000000000302043b000000d40230009c000001b90000213d0000010402100370000000000402043b000000d40240009c000001b90000213d000a00000006001d000b00000005001d0000012401100370000000000601043b000000400100043d00000060021000390000014005000039000000000052043500000040021000390000000000d2043500000020021000390000000000c204350000016007100039000000800500043d00000000005704350000018007100039000000000805004b000001120000613d00000000080000190000000009780019000000a00a800039000000000a0a04330000000000a904350000002008800039000000000958004b0000010b0000413d0000000007750019000000000007043500000140071000390000000000670435000000e0061000390000000a070000290000000000760435000000c0061000390000000b070000290000000000760435000000a00610003900080000000f001d0000000000f60435000000800610003900090000000e001d0000000000e60435000000d4064001970000012004100039000700000006001d0000000000640435000000d4043001970000010003100039000600000004001d00000000004304350000001f035000390000000003b3016f000001600430003900000000004104350000019f033000390000000004b3016f0000000003140019000000000443004b00000000040000190000000104004039000000e00530009c000000ab0000213d0000000104400190000000ab0000c13d000000400030043f000000d204000041000000d20320009c000000000204801900000040022002100000000001010433000000d20310009c00000000010480190000006001100210000000000121019f0000000002000414000000d20320009c0000000002048019000000c002200210000000000112019f000000e3011001c7000080100200003900030000000b001d00050000000c001d00040000000d001d0342033d0000040f0000000102200190000001b90000613d000000000101043b000200000001001d000000dc0100004100000000001004390000000001000412000000040010044300000024000004430000000001000414000000d20210009c000000d201008041000000c001100210000000e4011001c700008005020000390342033d0000040f0000000102200190000001bb0000613d000000000101043b0000008802100270000000e502200197000000e6022001c700000000002004350000007801100210000000e7011001c7000000200010043f000000e8010000410000000002000414000000090010043f00000002010000290000000d0010043f00000060010000390000004d0010043f0000004d0100008a0000006d0010043f000000d203000041000000d20120009c0000000002038019000000c001200210000000e9011001c70000800602000039034203380000040f00000001022001900000017c0000613d000000000101043b000200d40010019c0000018d0000c13d000000400100043d0000004402100039000000f0030000410000000000320435000000240210003900000017030000390000000000320435000000f1020000410000000000210435000000040210003900000020030000390000000000320435000000d20210009c000000d2010080410000004001100210000000f2011001c70000034400010430000000000100041a000000e00210009c000000ab0000213d0000000102100039000000000020041b0000000000000435000000ea01100041000000000201041a000000eb022001970000000205000029000000000252019f000000000021041b000000d203000041000000400100043d000100000001001d0000000001000414000000d20210009c0000000001038019000000c001100210000000e3011001c70000800d020000390000000203000039000000ec04000041034203380000040f0000000101200190000001b90000613d000000ed010000410000000000100439000000020100002900000004001004430000000001000414000000d20210009c000000d201008041000000c001100210000000ee011001c700008002020000390342033d0000040f0000000102200190000001bb0000613d000000000101043b000000000101004b00000005030000290000000404000029000001bc0000c13d00000000010000190000034400010430000000000001042f000000010500002900000044015000390000012002000039000000000021043500000024015000390000000000410435000000ef010000410000000000150435000000040150003900000000003104350000012402500039000000800100043d00000000001204350000014402500039000000000301004b000001d40000613d00000000030000190000000004230019000000a005300039000000000505043300000000005404350000002003300039000000000413004b000001cd0000413d000000000221001900000000000204350000000104000029000001040240003900000007030000290000000000320435000000e40240003900000006030000290000000000320435000000c4024000390000000a030000290000000000320435000000a4024000390000000b03000029000000000032043500000084024000390000000803000029000000000032043500000064024000390000000903000029000000000032043500000000020004140000000203000029000000040330008c000002020000613d0000001f01100039000000030110017f000000d2030000410000000105000029000000d20450009c0000000004030019000000000405401900000040044002100000014401100039000000d20510009c00000000010380190000006001100210000000000141019f000000d20420009c0000000002038019000000c002200210000000000112019f0000000202000029034203380000040f00000001022001900000020f0000613d0000000101000029000000e00110009c000000ab0000213d0000000103000029000000400030043f00000002010000290000000000130435000000d201000041000000d20230009c00000000030180190000004001300210000000de011001c7000003430001042e000000400200043d000000000301001900000060033002700000001f0430018f000000d20330019700000005053002720000021f0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002170000413d000000000604004b0000022e0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000d201000041000000d20420009c000000000201801900000040012002100000006002300210000000000121019f00000344000104300000000004010019000000f501000041000001430240008c00000000020000190000000002012019000000f503400197000000000503004b0000000001008019000000f50330009c000000000102c019000000000101004b0000029a0000613d000000000a0003670000000401a00370000000000101043b000000d40210009c0000029a0000213d0000002402a00370000000000202043b0000004403a00370000000000703043b000000e00370009c0000029a0000213d0000002303700039000000000343004b0000029a0000813d000000040870003900000000038a034f000000000503043b000000e10350009c0000029c0000813d0000001f03500039000000200600008a000000000363016f0000003f03300039000000000663016f000000400300043d0000000006630019000000000936004b00000000090000190000000109004039000000e00b60009c0000029c0000213d00000001099001900000029c0000c13d000000400060043f000000000653043600000000075700190000002407700039000000000447004b0000029a0000213d000000200480003900000000074a034f0000001f0450018f0000000508500272000002760000613d0000000009000019000000050b900210000000000cb60019000000000bb7034f000000000b0b043b0000000000bc04350000000109900039000000000b89004b0000026e0000413d000000000904004b000002850000613d0000000508800210000000000787034f00000000088600190000000304400210000000000908043300000000094901cf000000000949022f000000000707043b0000010004400089000000000747022f00000000044701cf000000000494019f000000000048043500000000045600190000000000040435000000c404a00370000000000704043b000000a404a00370000000000604043b0000008404a00370000000000504043b0000006404a00370000000000404043b000000e408a00370000000000808043b000000d40980009c0000029a0000213d0000010409a00370000000000909043b000000d40b90009c0000029a0000213d000001240aa00370000000000a0a043b000000000001042d00000000010000190000034400010430000000f30100004100000000001004350000004101000039000000040010043f000000f4010000410000034400010430000000000200041a000000000212004b000002a90000a13d000000ea0110004100000000000004350000000002000019000000000001042d000000f30100004100000000001004350000003201000039000000040010043f000000f4010000410000034400010430000000400b00043d000000600cb00039000001400d0000390000000000dc0435000000400cb0003900000000002c0435000000d4021001970000002001b00039000000000021043500000000c30304340000016002b0003900000000003204350000018002b00039000000000d03004b000002c60000613d000000000d000019000000000e2d0019000000000fdc0019000000000f0f04330000000000fe0435000000200dd00039000000000e3d004b000002bf0000413d000000000c32001900000000000c0435000001400cb000390000000000ac0435000000d409900197000001200ab0003900000000009a0435000000d4088001970000010009b000390000000000890435000000e008b000390000000000780435000000c007b000390000000000670435000000a006b0003900000000005604350000008005b0003900000000004504350000001f03300039000000200400008a000000000343016f0000000003b300490000000002230019000000200320008a00000000003b04350000001f02200039000000000342016f0000000002b30019000000000332004b00000000030000190000000103004039000000e00420009c000002ff0000213d0000000103300190000002ff0000c13d000000400020043f000000d202000041000000d20310009c0000000001028019000000400110021000000000030b0433000000d20430009c00000000030280190000006003300210000000000113019f0000000003000414000000d20430009c0000000003028019000000c002300210000000000112019f000000e3011001c700008010020000390342033d0000040f0000000102200190000003050000613d000000000101043b000000000001042d000000f30100004100000000001004350000004101000039000000040010043f000000f401000041000003440001043000000000010000190000034400010430000000000001042f000000d203000041000000d20410009c00000000010380190000004001100210000000d20420009c00000000020380190000006002200210000000000112019f0000000002000414000000d20420009c0000000002038019000000c002200210000000000112019f000000e3011001c700008010020000390342033d0000040f00000001022001900000031c0000613d000000000101043b000000000001042d0000000001000019000003440001043000000000050100190000000000200439000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000231004b000003210000413d000000d2010000410000000002000414000000d20420009c0000000002018019000000d20430009c00000000030180190000006001300210000000c002200210000000000112019f000000f6011001c700000000020500190342033d0000040f0000000102200190000003370000613d000000000101043b000000000001042d000000000001042f0000033b002104210000000102000039000000000001042d0000000002000019000000000001042d00000340002104230000000102000039000000000001042d0000000002000019000000000001042d0000034200000432000003430001042e000003440001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000aaf10f4100000000000000000000000000000000000000000000000000000000aaf10f4200000000000000000000000000000000000000000000000000000000d4213aef0000000000000000000000000000000000000000000000000000000022bacceb0000000000000000000000000000000000000000000000000000000050b492ba000000000000000000000000000000005af43d82803e903d91602b57fd5bf3ff310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0000000000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f020000000000000000000000000000000000000000000000000000000000000002000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff0000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf33cda33511d41a8a5431b1770c5bc0ddd62e1cd30555d16659b89c0d60f4f9f570200000000000000000000000000000000000037000000090000000000000000290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffffffffffffffffffff0000000000000000000000000000000000000000448708bcd9fda3435ba79d40bb017e884dcbed0b1e972743c8fd32f6c5ff47bb1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000a011c8cc00000000000000000000000000000000000000000000000000000000455243313136373a2063726561746532206661696c656400000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd4dbde5c8f6d0953f0846b8e17d27c30604b1f7746b1369907ad8577afdb8c1", + "entries": [ + { + "constructorArgs": [ + "0xd1515bB65096d67895287bC180521007bc71900F" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xf38756A27593CEd6b4bF3807b44a88908b3d8ccC", + "txHash": "0x4b239c2f68f162a1328d4569d77e722526be1c194d1e559794bfa11a45d095a3" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json new file mode 100644 index 00000000..54019d4c --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json @@ -0,0 +1,1621 @@ +{ + "sourceName": "contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol", + "contractName": "TrancheVestingMerkleDistributor", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "int256", + "name": "amount", + "type": "int256" + } + ], + "name": "Adjust", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Claim", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "fromDelegate", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "toDelegate", + "type": "address" + } + ], + "name": "DelegateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + } + ], + "name": "DelegateVotesChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + } + ], + "name": "InitializeDistributionRecord", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "uri", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fractionDenominator", + "type": "uint256" + } + ], + "name": "InitializeDistributor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint160", + "name": "maxDelayTime", + "type": "uint160" + } + ], + "name": "SetDelay", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + } + ], + "name": "SetMerkleRoot", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "name": "SetSweepRecipient", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "SetToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + } + ], + "name": "SetTotal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "VestedFraction", + "type": "uint128" + } + ], + "name": "SetTranche", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "string", + "name": "uri", + "type": "string" + } + ], + "name": "SetUri", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "voteFactor", + "type": "uint256" + } + ], + "name": "SetVoteFactor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepNative", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "int256", + "name": "amount", + "type": "int256" + } + ], + "name": "adjust", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint32", + "name": "pos", + "type": "uint32" + } + ], + "name": "checkpoints", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "fromBlock", + "type": "uint32" + }, + { + "internalType": "uint224", + "name": "votes", + "type": "uint224" + } + ], + "internalType": "struct ERC20Votes.Checkpoint", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "totalAmount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "merkleProof", + "type": "bytes32[]" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + } + ], + "name": "delegate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "delegateBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "delegates", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "distancePerSecond", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "getClaimableAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "getDistributionRecord", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "initialized", + "type": "bool" + }, + { + "internalType": "uint120", + "name": "total", + "type": "uint120" + }, + { + "internalType": "uint120", + "name": "claimed", + "type": "uint120" + } + ], + "internalType": "struct DistributionRecord", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getFairDelayTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFractionDenominator", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMerkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + } + ], + "name": "getPastTotalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + } + ], + "name": "getPastVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSweepRecipient", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "i", + "type": "uint256" + } + ], + "name": "getTranche", + "outputs": [ + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTranches", + "outputs": [ + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "getVestedFraction", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "getVoteFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche[]", + "name": "_tranches", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "merkleProof", + "type": "bytes32[]" + } + ], + "name": "initializeDistributionRecord", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "maxDelayTime", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "numCheckpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "randomValue", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + } + ], + "name": "setMerkleRoot", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "_recipient", + "type": "address" + } + ], + "name": "setSweepRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + } + ], + "name": "setToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + } + ], + "name": "setTotal", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche[]", + "name": "_tranches", + "type": "tuple[]" + } + ], + "name": "setTranches", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_uri", + "type": "string" + } + ], + "name": "setUri", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_voteFactor", + "type": "uint256" + } + ], + "name": "setVoteFactor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "sweepToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sweepToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "token", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "total", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x0004000000000002000f000000000002000000000301001900000060033002700000081b0030019d0000081b0b3001970003000000b10355000200000001035500000001022001900000003e0000c13d0000008005000039000000400050043f0000000402b0008c000015c70000413d000000000201043b000000e002200270000008380420009c000000830000a13d000008390420009c000000a50000213d000008510420009c000000e90000213d0000085d0420009c000001f40000213d000008630420009c000004040000213d000008660120009c000006510000613d000008670120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000000603000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f0000000105500190000001450000c13d000000800010043f000000000404004b000009400000613d0000000000300435000000000201004b0000000002000019000009610000613d000008c8030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000000360000413d000009610000013d0000016001000039000000400010043f0000000001000416000000000101004b000015c70000c13d0000001501000039000001600010043f0000081c02000041000001800020043f000001a00010043f000001c00020043f0000000303000039000001e00030043f0000081d01000041000002000010043f0000026001000039000000400010043f0000000101000039000c00000001001d000002200010043f0000081e01000041000002400010043f000000000600041100000010016002100000081f01100197000000000200041a0000082004200197000000000141019f000000000010041b0000081b0500004100000000010004140000081b0410009c0000000001058019000000c00110021000000821011001c7000000100220027000000822052001970000800d020000390000082304000041000b00000006001d2067205d0000040f0000000101200190000015c70000613d0000000c03000029000000000103041a00000824011001970000000b02000029000000000121019f000000000013041b000002600020043f00000000010004140000081b0210009c0000081b01008041000000c00110021000000825011001c70000800d0200003900000826040000412067205d0000040f0000000101200190000015c70000613d000001a00500043d000008270150009c0000013a0000413d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000008680420009c000000da0000a13d000008690420009c0000011c0000213d000008750420009c000002c50000213d0000087b0420009c000004d40000213d0000087e0420009c000007d10000613d0000087f0220009c000015c70000c13d00000000020004160000002404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000302043b000000000200041a000000100220027000000822022001970000000004000411000000000242004b000008740000c13d0000000102000039000000000402041a00000000050004140000082204400197000000040640008c000009740000c13d0000000001b1034f0000000108000031000009f20000013d0000083a0420009c000000f50000213d000008460420009c000002670000213d0000084c0420009c0000040d0000213d0000084f0420009c000006660000613d000008500220009c000015c70000c13d0000000002000416000000e403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002402100370000000000202043b000b00000002001d000008220220009c000015c70000213d0000006402100370000000000202043b000a00000002001d0000008401100370000000000101043b000900000001001d000000ff0110008c000015c70000213d000800000005001d000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000a0110006c00000d600000a13d000000400100043d0000004402100039000008b603000041000006040000013d000008800420009c0000014b0000a13d000008810420009c000001540000213d000008870420009c000003560000213d0000088a0420009c000005cf0000613d0000088b0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d00000017010000390000081d0000013d000008520420009c0000027c0000213d000008580420009c000004390000213d0000085b0420009c000006840000613d0000085c0220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000005bf0000013d0000083b0420009c000002ba0000213d000008410420009c0000044b0000213d000008440420009c000006910000613d000008450220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b0000000004020019000008220220009c000015c70000213d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000002401100370000000000301043b000b00000003001d0000000101000039000000000101041a00000822021001970000000001040019000c00000001001d20671a230000040f000000400100043d0000000b0200002900000000002104350000081b020000410000000003000414000009db0000013d0000086a0420009c000002d80000213d000008700420009c000004ff0000213d000008730420009c000008020000613d000008740120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d000000000100041a000000100210027000000822022001970000000005000411000000000252004b000008740000c13d0000082001100197000000000010041b0000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000821011001c70000800d020000390000000303000039000008230400004100000000060000190000067f0000013d0000000504000039000000000104041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000000112004b000003130000613d000008a50100004100000000001004350000002201000039000000040010043f000008a60100004100002069000104300000088c0420009c0000034b0000a13d0000088d0420009c000003e60000213d000008900420009c000006190000613d000008910120009c000004080000613d000015c70000013d000008820420009c000003ae0000213d000008850420009c000006080000613d000008860220009c000015c70000c13d0000000002000416000000e404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000004402100370000000000402043b000008290240009c000015c70000213d00000023024000390000000002b2004b000015c70000813d0000000405400039000000000251034f000000000202043b000008290620009c0000007d0000213d0000001f06200039000000200800008a000000000686016f0000003f06600039000000000686016f000008a10760009c0000007d0000213d0000008006600039000000400060043f000000800020043f000000000424001900000024044000390000000004b4004b000015c70000213d000b00000008001d0000002004500039000000000441034f0000001f0520018f00000005062002720000018d0000613d00000000070000190000000508700210000000000984034f000000000909043b000000a00880003900000000009804350000000107700039000000000867004b000001850000413d000000000705004b0000019c0000613d0000000506600210000000000464034f0000000305500210000000a006600039000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f0000000000460435000000a00220003900000000000204350000006402100370000000000202043b000008290420009c000015c70000213d00000023042000390000000004b4004b000015c70000813d0000000404200039000000000441034f000000000504043b000008290450009c0000007d0000213d00000005045002100000003f04400039000008a004400197000000400600043d0000000004460019000a00000006001d000000000664004b00000000060000190000000106004039000008290740009c0000007d0000213d00000001066001900000007d0000c13d000000400040043f0000000a040000290000000004540436000900000004001d0000002402200039000000060450021000000000042400190000000006b4004b000015c70000213d000000000505004b000011ce0000c13d000000a402100370000000000202043b000800000002001d000008220220009c000015c70000213d000000c401100370000000000101043b000600000001001d000008220110009c000015c70000213d000000000100041a000700000001001d0004ff00001001940000124b0000c13d0000000701000029000000ff0110019000000000020000190000000102006039000d00000002001d00000000020004150000000d0220008a0005000500200218000000000101004b0000124f0000c13d000001000100008a000000070110017f00000001011001bf000008e80110019700000100011001bf000300000000001d000000000010041b00000002020003670000002403200370000000000303043b000700000003001d0000008402200370000000000202043b000400000002001d0000ff0001100190000013230000c13d000000400100043d0000006402100039000008fb0300004100000000003204350000004402100039000008fc03000041000000000032043500000024021000390000002b03000039000007f60000013d0000085e0420009c000004720000213d000008610420009c000006c40000613d000008620220009c000015c70000c13d00000000020004160000002404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000502043b000008290250009c000015c70000213d00000023025000390000000002b2004b000015c70000813d0000000406500039000000000261034f000000000202043b000008290420009c0000007d0000213d0000001f07200039000000200400008a000000000747016f0000003f07700039000000000747016f000008a10870009c0000007d0000213d0000008007700039000000400070043f000000800020043f000000000525001900000024055000390000000003b5004b000015c70000213d0000002003600039000000000131034f0000001f0320018f0000000505200272000002270000613d00000000060000190000000507600210000000000871034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000021f0000413d000000000603004b000002360000613d0000000505500210000000000151034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f0000000000150435000000a0012000390000000000010435000000000100041a000000100110027000000822011001970000000002000411000000000121004b00000ded0000c13d000000800200043d000008290120009c0000007d0000213d0000001301000039000000000501041a000000010350019000000001065002700000007f0360018f000000000306c0190000001f0630008c00000000060000190000000106002039000000000565013f0000000105500190000001450000c13d000000200530008c0000025f0000413d0000001f0520003900000005055002700000089b065000410000089b05000041000000200720008c000000000506801900000000001004350000001f0330003900000005033002700000089b03300041000000000635004b0000025f0000813d000000000005041b0000000105500039000000000635004b0000025b0000413d0000001f0320008c00000fca0000a13d000000000010043500000000044201700000103f0000c13d000000a0050000390000089b030000410000104c0000013d000008470420009c000004b70000213d0000084a0420009c000006f20000613d0000084b0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008220110009c000015c70000213d206716c20000040f0000000c010000292067200d0000040f0000000001000019000020680001042e000008530420009c000004c00000213d000008560420009c0000070a0000613d000008570220009c000015c70000c13d0000000002000416000000c403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000004402100370000000000202043b000b00000002001d0000002402100370000000000202043b000a00000002001d0000006401100370000000000101043b000900000001001d000000ff0110008c000015c70000213d000800000005001d000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000400200043d000000000101043b0000000b03000029000000000131004b00000c650000a13d0000004401200039000008bd03000041000000000031043500000024012000390000001d030000390000000000310435000008320100004100000000001204350000000401200039000000200300003900000000003104350000081b010000410000081b0320009c00000000020180190000004001200210000008b1011001c700002069000104300000083c0420009c000004c90000213d0000083f0420009c000007150000613d000008400120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d00000016010000390000081d0000013d000008760420009c0000051d0000213d000008790420009c0000080e0000613d0000087a0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000201043b000008220120009c000015c70000213d0000000001000411206717400000040f0000000001000019000020680001042e0000086b0420009c000005340000213d0000086e0420009c000008220000613d0000086f0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d000008ab0100004100000000001004390000000001000412000c00000001001d0000000400100443000000a00100003900000024001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000400700043d000000000101043b000000ff0210008c000009410000c13d0000000704000039000000000304041a000000010530019000000001023002700000007f0120018f000000000102c0190000001f0210008c00000000020000190000000102002039000000000223013f0000000102200190000001450000c13d0000000002170436000000000505004b00000bc00000613d0000000000400435000000000301004b000000000300001900000bc60000613d0000082a0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000513004b0000030b0000413d00000bc60000013d000000200130008c000003350000413d000900000003001d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d0000000a050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000009010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000b04000029000003350000813d000000000002041b0000000102200039000000000312004b000003310000413d0000001f0150008c000005b00000a13d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000200200008a0000000a060000290000000003260170000000000101043b000008ce0000c13d0000002002000039000008d80000013d000008920420009c000008ae0000613d000008930420009c000005bc0000613d000008940120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000001401000039000008360000013d000008880420009c0000060f0000613d000008890220009c000015c70000c13d00000000020004160000008404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b0000002404100370000000000404043b000800000004001d000008220440009c000015c70000213d0000004404100370000000000404043b000700000004001d0000006404100370000000000404043b000008290540009c000015c70000213d00000023054000390000000005b5004b000015c70000813d0000000405400039000000000151034f000000000101043b000c00000001001d000008290110009c000015c70000213d00000024014000390000000c030000290000000503300210000600000001001d000b00000003001d000900000013001d0000000901b0006b000015c70000213d000000a00020043f00000008010000290000006001100210000000c00010043f0000000701000029000000d40010043f0000005401000039000000800010043f0000010001000039000000400010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008fd011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000b020000290000003f02200039000008a002200197000000400300043d0000000002230019000b00000003001d000000000332004b00000000030000190000000103004039000008290420009c0000007d0000213d00000001033001900000007d0000c13d000000400020043f0000000b020000290000000c040000290000000002420436000a00000002001d0000000902000029000000000220007c000015c70000213d0000000c0200006b00000fd60000c13d0000001a02000039000000000202041a000600000002001d000010060000013d000008830420009c000006140000613d000008840220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008220110009c000015c70000213d000000000100041100000000001004350000000301000039000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000c020000290000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000101041a000000010200008a000000000121013f00000024020000390000000202200367000000000202043b000000000112004b00000a9f0000a13d000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300000088e0420009c000006340000613d0000088f0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000000401100370000000000101043b0000001102000039000000000012041b000000800010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008b7011001c70000800d0200003900000001030000390000090b040000410000067f0000013d000008640420009c000007320000613d000008650120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000000401000039000008360000013d0000084d0420009c000007440000613d0000084e0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000001903000039000000000203041a000008290120009c0000007d0000213d00000005012002100000003f01100039000008a004100197000008a10140009c0000007d0000213d0000008001400039000000400010043f000000800020043f0000000000300435000000000302004b00000d420000613d000008310340009c0000007d0000213d000008a203000041000000a00400003900000000050000190000004006100039000000400060043f000000000603041a000000200710003900000080086002700000000000870435000008a30660019700000000006104350000000004140436000000400100043d0000000105500039000000000625004b00000d420000813d0000000103300039000008a40610009c000004280000a13d0000007d0000013d000008590420009c000007600000613d0000085a0220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000302043b000008220230009c000015c70000213d0000002401100370000000000201043b000000000103001920671e260000040f000007bf0000013d000008420420009c000007800000613d000008430220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002401100370000000000101043b000b00000001001d0000081b0110009c000015c70000213d206717030000040f0000000c0100002900000000001004350000000c01000039000000200010043f00000040020000390000000001000019206720280000040f0000000b02000029206717120000040f2067172d0000040f00000000210104340000081b01100197000000400300043d00000000011304360000000002020433000008990220019700000000002104350000081b010000410000075b0000013d0000085f0420009c000007a00000613d000008600220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d000000000200041100000000002004350000000302000039000000200020043f0000002401100370000000000101043b000b00000001001d0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000c020000290000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000501041a000000400100043d0000083202000041000000000021043500000004021000390000002003000039000000000032043500000044021000390000081b030000410000081b0410009c0000000003014019000000240410003900000040033002100000000b0550006c00000cd70000813d00000025050000390000000000540435000008c20400004100000000004204350000006401100039000008c302000041000000000021043500000835013001c70000206900010430000008480420009c000007b50000613d000008490120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000001201000039000008360000013d000008540120009c000007c70000613d000008550120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d00000001010000390000081d0000013d0000083d0120009c000007cc0000613d0000083e0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000000301000039000000800010043f0000089501000041000020680001042e0000087c0120009c000008320000613d0000087d0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000400300043d000000000101043b000008e00110009c0000094c0000413d0000006401300039000008e20200004100000000002104350000004401300039000008e3020000410000000000210435000000240130003900000026020000390000000000210435000008320100004100000000001304350000000401300039000000200200003900000000002104350000081b010000410000081b0230009c0000000003018019000000400130021000000835011001c70000206900010430000008710420009c0000083a0000613d000008720220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000000401100370000000000101043b0000001a02000039000000000012041b000000800010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008b7011001c70000800d020000390000000103000039000008d4040000410000067f0000013d000008770420009c0000087d0000613d000008780220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000c01000039000000200010043f00000040020000390000000001000019206720280000040f000000000101041a000c00000001001d20671a0b0000040f0000065d0000013d0000086c0420009c000008a80000613d0000086d0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000008ca0210009c000007ed0000213d0000000c07000029000000000117004b00000a9b0000813d0000000d01000039000000000201041a000000060320008c00000cdd0000413d0000008003200270000008cb0420009c0000000003024019000008cb0420009c0000008004000039000000000400401900000040054001bf000008270630009c00000000040580190000004005300270000008270630009c000000000305801900000020054001bf000008cc0630009c00000000040580190000002005300270000008cc0630009c000000000305801900000010054001bf000008cd0630009c00000000040580190000001005300270000008cd0630009c0000000003058019000001000530008c00000008044080390000000803308270000000100530008c00000004044080390000000403308270000000040530008c00000002044080390000000203308270000000010330008c00000001044020390000000103400270000000000432022f000000010330020f0000000003430019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d9000000000543004b0000000003048019000000000432004b000003e00000413d00000000001004350000000004320049000008ce03400041000000000303041a0000081b03300197000000000373004b000012710000a13d000000000300001900000000020400190000000c07000029000000000423004b00000ce00000413d00000cf90000013d000000000105004b0000000001000019000005b40000613d000001c00100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f000008e60000013d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220110009c000015c70000213d0000083201000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f000008b301000041000000c40010043f0000090e01000041000020690001043000000000020004160000006403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000008220320009c000015c70000213d0000002401100370000000000101043b000008220110009c000015c70000213d00000000002004350000000301000039000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000200041100000822022001970000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000101041a000000010200008a000000000221004b00000a9f0000613d00000044020000390000000202200367000000000202043b000000000121004b00000a9f0000813d000000400100043d00000044021000390000090a03000041000000000032043500000024021000390000001d0300003900000c280000013d0000000001000416000000000101004b000015c70000c13d0000001201000039000000800010043f0000089501000041000020680001042e0000000001000416000000000101004b000015c70000c13d0000001101000039000008360000013d0000000001000416000000000101004b000015c70000c13d206719440000040f000007bf0000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000501043b000008220150009c000015c70000213d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d000000000105004b0000098f0000c13d0000083201000041000000800010043f0000002001000039000000840010043f0000001301000039000000a40010043f0000091001000041000000c40010043f0000090e01000041000020690001043000000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008220110009c000015c70000213d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d0000090c01000041000000800010043f0000000001000410000000840010043f00000000010004140000000c02000029000000040320008c0000099e0000c13d0000000103000031000000200130008c00000000040300190000002004008039000009c90000013d0000000001000416000000000101004b000015c70000c13d0000800b01000039000000040300003900000000040004150000000f0440008a0000000504400210000008c9020000412067203e0000040f000c00000001001d206719f30000040f000000400100043d0000000c0200002900000000002104350000081b020000410000081b0310009c000000000102801900000040011002100000089f011001c7000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000000401100370000000000101043b0000001802000039000000000012041b000000800010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008b7011001c70000800d020000390000000103000039000008b8040000412067205d0000040f0000000101200190000015c70000613d0000000001000019000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d20671e1a0000040f000000800010043f0000089501000041000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d000000e002000039000c00000002001d000000400020043f000000800000043f000000a00000043f000000c00000043f00000000001004350000000f01000039000000200010043f00000040020000390000000001000019206720280000040f000b00000001001d0000000c01000029206716480000040f0000000b01000029000000000101041a000000ff021001900000000002000019000000010200c039000000e00020043f00000008031002700000089d03300197000001000030043f00000080011002700000089d01100197000001200010043f000000400100043d0000000002210436000001000300043d0000089d033001970000000000320435000001200200043d0000089d02200197000000400310003900000000002304350000081b020000410000081b0310009c000000000102801900000040011002100000089e011001c7000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000201043b000000000302041a000000000103004b0000000001000019000007bf0000613d000c00000003001d00000000002004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000c020000290000000001120019000000010110008a000000000101041a0000002001100270000007bf0000013d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000008220320009c000015c70000213d0000002401100370000000000101043b000c00000001001d000008220110009c000015c70000213d00000000002004350000000301000039000000200010043f00000040020000390000000001000019206720280000040f0000000c02000029206716f20000040f000000000101041a000007bf0000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220110009c000015c70000213d0000001801000039000008360000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d000000000201004b00000a340000c13d0000083201000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000089601000041000000c40010043f0000089701000041000000e40010043f0000089801000041000020690001043000000000020004160000002404b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008290210009c000015c70000213d000000040110003900000000020b0019206716660000040f000c00000001001d206716c20000040f0000000c0100002920671e680000040f0000000001000019000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000000c002000039000000400020043f000000800000043f000000a00000043f0000001902000039000000000302041a000000000331004b0000092e0000813d0000000000200435000008a20110004120671e550000040f000000400200043d000c00000002001d206716bb0000040f0000081b010000410000000c030000290000081b0230009c000000000301801900000040013002100000089a011001c7000020680001042e0000000001000416000000000101004b000015c70000c13d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d000008be010000410000000000100439000000000100041000000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800a02000039206720620000040f0000000102200190000015790000613d000000000701043b0000000102000039000000000302041a00000000010004140000082204300197000000040340008c0000097d0000c13d000000010100003100000c0f0000013d0000000001000416000000000101004b000015c70000c13d0000001303000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f0000000105500190000001450000c13d000000800010043f000000000404004b0000095b0000613d0000000000300435000000000201004b0000000002000019000009610000613d0000089b030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000007980000413d000009610000013d0000000001000416000000000101004b000015c70000c13d000000c001000039000000400010043f0000001f01000039000000800010043f000008c401000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e002000039206715eb0000040f000000c00110008a0000081b020000410000081b0310009c00000000010280190000006001100210000008c5011001c7000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d20671d7b0000040f000000400200043d00000000001204350000081b010000410000081b0320009c000000000201801900000040012002100000089f011001c7000020680001042e0000000001000416000000000101004b000015c70000c13d00000015010000390000081d0000013d0000000001000416000000000101004b000015c70000c13d00000010010000390000081d0000013d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002401100370000000000101043b000900000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000008e00210009c00000a370000413d000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e3030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c7000020690001043000000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d000000000010043500000002010000390000082d0000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000b01000039000000200010043f00000040020000390000000001000019206720280000040f000000000101041a0000082201100197000000800010043f0000089501000041000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000901000039000000200010043f00000040020000390000000001000019206720280000040f000008360000013d0000000001000416000000000101004b000015c70000c13d0000001a01000039000000000101041a000000800010043f0000089501000041000020680001042e00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002401100370000000000301043b000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d000b00000003001d0000000c0100002900000000001004350000000f01000039000a00000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d000008d50320009c0000007d0000213d000000000101043b0000006003200039000000400030043f000000000301041a00000080013002700000089d0110019700000040042000390000000000140435000000ff043001900000000001000019000000010100c039000000000112043600000008023002700000089d022001970000000000210435000000000204004b00000df80000c13d000000400100043d0000004402100039000008df0300004100000df00000013d0000083201000041000000800010043f0000002001000039000000840010043f000000a40010043f000008c601000041000000c40010043f0000090e0100004100002069000104300000000001000416000000000101004b000015c70000c13d00000000010b0019206716140000040f00000000060100190000000007020019000b00000007001d0000000008030019000a00000008001d000900000004001d000800000005001d000000400100043d000c00000001001d0000002001100039000700000001001d00000000020600190000000003070019000000000408001920671f1a0000040f0000000c030000290000000002310049000000200120008a00000000001304350000000001030019206716530000040f0000000c0100002900000000020104330000000701000029206720280000040f000c00000001001d00000000030000310000000901000029000000080200002920671f220000040f00000000020100190000000c0100002920671fc60000040f0000000b010000290000000a0200002920671f4a0000040f0000000001000019000020680001042e0000000001000416000000000101004b000015c70000c13d000000000100041a00000010011002700000081e0000013d0000000001000416000000000101004b000015c70000c13d0000000503000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f0000000105500190000001450000c13d000000800010043f000000000404004b0000095b0000613d0000000000300435000000000201004b0000000002000019000009610000613d00000911030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008c60000413d000009610000013d00000020020000390000000004000019000001a0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000008d00000413d000000000363004b000008e30000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001a0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000b04000029000000000014041b000001e00500043d000008290150009c0000007d0000213d0000000604000039000000000104041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000001450000c13d000000200130008c000009180000413d000900000003001d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d0000000a050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000009010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000b04000029000009180000813d000000000002041b0000000102200039000000000312004b000009140000413d0000001f0150008c000009340000a13d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000200200008a0000000a060000290000000003260170000000000101043b00000aa60000c13d000000200200003900000ab00000013d000008a50100004100000000001004350000003201000039000000040010043f000008a6010000410000206900010430000000000105004b0000000001000019000009380000613d000002000100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f00000abe0000013d0000095b0000013d000000ff0210018f000000200320008c000009860000413d000008d00100004100000000001704350000081b010000410000081b0270009c00000000070180190000004001700210000008d1011001c700002069000104300000000001030019000b00000003001d2067163d0000040f0000000b030000290000002001300039000008e10200004100000000002104350000001d0100003900000000001304350000000002030019000000400100043d000c00000001001d206715fe0000040f0000000c040000290000096a0000013d000001000300008a000000000232016f000000a00020043f000000000101004b0000002002000039000000000200601900000020022000390000008001000039000c00000001001d206716530000040f000000400100043d000b00000001001d0000000c02000029206715fe0000040f0000000b0400002900000000014100490000081b020000410000081b0310009c00000000010280190000081b0340009c000000000402801900000040024002100000006001100210000000000121019f000020680001042e0000081b010000410000081b0250009c0000000005018019000000c001500210000000000203004b000c00000003001d000009e80000c13d0000000002040019000009eb0000013d0000081b020000410000081b0310009c0000000001028019000000c001100210000000000207004b000c00000007001d00000c050000c13d000000000204001900000c090000013d000008a40370009c0000007d0000213d0000004003700039000000400030043f00000020037000390000000000130435000b00000007001d000000000027043500000bd30000013d0000001001000039000000000201041a0000082402200197000000000252019f000000000021041b0000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000821011001c70000800d0200003900000002030000390000090f040000410000067f0000013d0000081b040000410000081b0310009c0000000001048019000000c0011002100000090d011001c7206720620000040f000000000301001900000060033002700000081b03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000009b60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000009ae0000413d000000000705004b000009c50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000d030000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000015c70000413d0000000101000039000000000101041a000000800300043d000b00000003001d00000822021001970000000c0100002920671a230000040f000000400100043d0000000b0200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d0200003900000002030000390000089c040000410000000c050000290000067f0000013d00000821011001c7000080090200003900000000050000192067205d0000040f0000000c030000290003000000010355000000000401001900000060044002700001081b0040019d0000081b08400197000000000408004b00000a060000c13d000000400100043d000000010220019000000c230000613d00000000003104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d020000390000000103000039000008c1040000410000067f0000013d000008290480009c0000007d0000213d0000001f04800039000000200500008a000000000454016f0000003f04400039000000000454016f000000400500043d0000000004450019000000000654004b00000000060000190000000106004039000008290740009c0000007d0000213d00000001066001900000007d0000c13d000000400040043f0000001f0480018f0000000005850436000000050980027200000a240000613d000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000796004b00000a1c0000413d000000000604004b000009f40000613d0000000506900210000000000161034f00000000066500190000000304400210000000000506043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000160435000009f40000013d206716da0000040f0000000001000019000020680001042e000000090110006b00000a9b0000813d0000000c0100002900000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000800000001001d000000000101041a000b00000001001d000000060110008c00000e3c0000413d0000000b050000290000008001500270000008cb0250009c0000000001054019000008cb0250009c0000008002000039000000000200401900000040032001bf000008270410009c00000000020380190000004003100270000008270410009c000000000103801900000020032001bf000008cc0410009c00000000020380190000002003100270000008cc0410009c000000000103801900000010032001bf000008cd0410009c00000000020380190000001003100270000008cd0410009c0000000001038019000001000310008c00000008022080390000000801108270000000100310008c00000004022080390000000401108270000000040310008c00000002022080390000000201108270000000010110008c00000001022020390000000101200270000000000215022f000000010110020f0000000001210019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c000012790000813d000008a50100004100000000001004350000001201000039000000040010043f000008a6010000410000206900010430000000400100043d0000004402100039000008e40300004100000aa20000013d000000400100043d0000004402100039000008b30300004100000000003204350000002402100039000000190300003900000c280000013d00000020020000390000000004000019000001e0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b00000aa80000413d000000000363004b00000abb0000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001e0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000b04000029000000000014041b000001600100043d000000200210008c00000ae50000413d000008290210009c0000007d0000213d0000000702000039000000000402041a000000010340019000000001054002700000007f0350018f000000000305c0190000001f0530008c00000000050000190000000105002039000000000454013f0000000104400190000001450000c13d000000200430008c00000ade0000413d0000001f0330003900000005053002700000082a035000410000001f041000390000000504400270000000000554004b00000ade0000813d0000082a04400041000000000004041b0000000104400039000000000534004b00000ada0000413d0000000000200435000000200300008a000000000431017000000d260000c13d00000180050000390000082a0300004100000d330000013d00000003021002100000010002200089000000010300008a00000000022301cf000000000301004b0000000002006019000001800300043d000000000223016f000000000212019f000001200020043f000002200200043d000000200320008c00000b150000413d000008290320009c0000007d0000213d0000000803000039000000000503041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f0000000105500190000001450000c13d000000200540008c00000b0e0000413d0000001f0440003900000005064002700000082b046000410000001f052000390000000505500270000000000665004b00000b0e0000813d0000082b05500041000000000005041b0000000105500039000000000645004b00000b0a0000413d0000000000300435000000200400008a000000000542017000000e200000c13d00000240060000390000082b0400004100000e2d0000013d00000003032002100000010003300089000000010400008a00000000033401cf000000000402004b0000000003006019000002400400043d000000000334016f000000000223019f000001400020043f0000081b0400004100000000020004140000081b0320009c00000000020480190000081b0310009c00000000010480190000006001100210000000c002200210000000000121019f0000082c011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000b00000001001d000000e00010043f000002200100043d00000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000006001100210000000c002200210000000000121019f0000082d011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000a00000001001d000001000010043f0000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000a00010043f000000400300043d0000008002300039000000000012043500000060013000390000000a02000029000000000021043500000040013000390000000b020000290000000000210435000000a001000039000900000001001d0000000001130436000000a0023000390000000004000410000a00000004001d000000000042043500000830020000410000000000210435000b00000003001d000008310230009c0000007d0000213d0000000b04000029000000c002400039000800000002001d000000400020043f0000081b020000410000081b0310009c0000000001028019000000400110021000000000030404330000081b0430009c00000000030280190000006003300210000000000113019f00000000030004140000081b0430009c0000000003028019000000c002300210000000000112019f00000821011001c70000801002000039206720620000040f00000001022001900000000c03000029000015c70000613d000000000101043b000000800010043f0000000a02000029000000c00020043f0000000e02000039000000000032041b000000000200041a0000ff0003200190000010140000c13d000000ff0320018f000000ff0330008c00000ba10000613d000000ff012001bf000000000010041b000000ff01000039000000400200043d00000000001204350000081b0100004100000000030004140000081b0430009c00000000030180190000081b0420009c00000000020180190000004001200210000000c002300210000000000121019f00000828011001c70000800d02000039000000010300003900000836040000412067205d0000040f0000000101200190000015c70000613d000000c00100043d000a00000001001d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a0001004430000004001000039000001c0001004430000000a01000029000001e0001004430000006001000039000000e00300043d000002000010044300000220003004430000008001000039000001000300043d00000240001004430000026000300443000001200100043d00000009030000290000028000300443000002a000100443000000c001000039000001400300043d000002c000100443000002e0003004430000010000200443000000070100003900000120001004430000083701000041000020680001042e000001000400008a000000000343016f0000000000320435000000000101004b000000200300003900000000030060190000003f01300039000000200200008a000000000221016f0000000001720019000000000221004b00000000020000190000000102004039000008290310009c0000007d0000213d00000001022001900000007d0000c13d000b00000007001d000000400010043f000008ab0100004100000000001004390000000c010000290000000400100443000000c00100003900000024001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000400200043d000000000101043b000000ff0310008c00000e150000c13d0000000805000039000000000405041a000000010640019000000001034002700000007f0130018f000000000103c0190000001f0310008c00000000030000190000000103002039000000000334013f00000001033001900000000b08000029000001450000c13d0000000003120436000000000606004b00000ebd0000613d0000000000500435000000000401004b000000000400001900000ec30000613d0000082b0500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b00000bfd0000413d00000ec30000013d00000821011001c70000800902000039000000000307001900000000050000192067205d0000040f0000000c07000029000300000001035500000060011002700001081b0010019d0000081b01100197000000000301004b00000c340000c13d000000400100043d000000010220019000000c230000613d00000000007104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d020000390000000103000039000008c1040000410000067f0000013d0000004402100039000008c0030000410000000000320435000000240210003900000010030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c70000206900010430000008290310009c0000007d0000213d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000008290630009c0000007d0000213d00000001055001900000007d0000c13d0000000009070019000000400030043f0000001f0310018f00000000041404360000000305000367000000050110027200000c540000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000c4c0000413d000000000603004b000000000709001900000c110000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f000000000031043500000c110000013d0000008001200039000000000031043500000060012000390000000a03000029000000000031043500000040012000390000000c03000029000000000031043500000008010000290000000001120436000008b9030000410000000000310435000008ba0320009c0000007d0000213d000000a003200039000000400030043f0000081b040000410000081b0310009c0000000001048019000000400110021000000000020204330000081b0320009c00000000020480190000006002200210000000000112019f00000002020003670000008403200370000000000303043b000700000003001d000000a402200370000000000202043b000b00000002001d00000000020004140000081b0320009c0000000002048019000000c002200210000000000112019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000500000001001d000008ab0100004100000000001004390000000001000412000600000001001d00000004001004430000004001000039000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b00000822011001970000000002000410000300000002001d000000000112004b00000f3d0000c13d000008ab01000041000000000010043900000006010000290000000400100443000000200100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000400000001001d0000082e01000041000000000010043900000000010004140000081b0210009c0000081b01008041000000c0011002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000040110006c00000f3d0000c13d000008ab0100004100000000001004390000000601000029000000040010044300000024000004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d00000f980000013d00000019010000390000000000140435000008b3010000410000000000120435000008b1013001c700002069000104300000000003000019000000000423004b00000cf90000813d000000010400008a00000ce50000013d0000000002050019000000000523004b00000cf90000813d000000000523016f000000000623013f00000001066002700000000005560019000000000665004b000000000600001900000001060040390000000106600190000003e00000c13d0000000000100435000008ce06500041000000000606041a0000081b06600197000000000676004b00000ce20000213d000000000345004b000003e00000613d0000000103500039000000000523004b00000ce50000413d000000000302004b000000000300001900000d000000613d0000000000100435000008cf01200041000000000101041a0000002003100270000000400100043d0000000000310435000006600000013d000000400200043d0000001f0430018f000000050530027200000d100000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d080000413d000000000604004b00000d1f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000081b010000410000081b0420009c000000000201801900000040012002100000006002300210000000000121019f00002069000104300000082a0300004100000020060000390000000005000019000000000706001900000160067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b00000d290000413d0000018005700039000000000414004b00000d3d0000813d0000000304100210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010310021000000001033001bf000000000032041b000000ff0200003900000aee0000013d00000020020000390000000002210436000000800300043d00000000003204350000004002100039000000000403004b00000d560000613d000000a004000039000000000500001900000000460404340000000076060434000008a30660019700000000066204360000000007070433000008a307700197000000000076043500000040022000390000000105500039000000000635004b00000d4b0000413d00000000021200490000081b030000410000081b0420009c00000000020380190000081b0410009c000000000103801900000040011002100000006002200210000000000112019f000020680001042e0000000c0100002900000000001004350000000901000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000301041a0000000102300039000000000021041b00000002010003670000004402100370000000000402043b000000400200043d000000c0052000390000000a060000290000000000650435000000a00520003900000000003504350000008003200039000000000043043500000060032000390000000b04000029000000000043043500000040032000390000000c0400002900000000004304350000002003200039000008a9040000410000000000430435000000c0040000390000000000420435000008aa0420009c0000007d0000213d000000e004200039000000400040043f0000081b050000410000081b0430009c0000000003058019000000400330021000000000020204330000081b0420009c00000000020580190000006002200210000000000232019f000000a403100370000000000303043b000a00000003001d000000c401100370000000000101043b000b00000001001d00000000010004140000081b0310009c0000000001058019000000c001100210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000600000001001d000008ab0100004100000000001004390000000001000412000700000001001d00000004001004430000004001000039000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b00000822011001970000000002000410000400000002001d000000000112004b000011010000c13d000008ab01000041000000000010043900000007010000290000000400100443000000200100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000500000001001d0000082e01000041000000000010043900000000010004140000081b0210009c0000081b01008041000000c0011002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000050110006c000011010000c13d000008ab0100004100000000001004390000000701000029000000040010044300000024000004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d0000115c0000013d000000400100043d0000004402100039000008c603000041000000000032043500000832020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000c2d0000013d000008d6020000410000000b06000029000000000306004b00000000030000190000000003024019000008d604600197000000000504004b000000000200a019000008d60440009c000000000203c019000000000202004b00000e070000c13d000000000206004b000900000006001d00000e0b0000c13d000008d60260009c000003e00000613d0000000b02000029000900000020005100000009020000290000089d0220009c00000e770000413d000000400100043d0000004402100039000008de0300004100000000003204350000002402100039000000180300003900000c280000013d000000ff0310018f000000200430008c00000e6c0000413d000008d00100004100000000001204350000081b010000410000081b0320009c00000000020180190000004001200210000008d1011001c700002069000104300000082b0400004100000020070000390000000006000019000000000807001900000220078000390000000007070433000000000074041b000000200780003900000001044000390000002006600039000000000956004b00000e230000413d0000024006800039000000000525004b00000e370000813d0000000305200210000000f80550018f000000010700008a000000000557022f000000000575013f0000000006060433000000000556016f000000000054041b000000010220021000000001022001bf000000000023041b000000ff0200003900000b1e0000013d00000000030000190000000b0130006c00000ea90000813d000780100000003d0000000b0200002900000e460000013d00000000020300190000000a03000029000000000123004b00000eaa0000813d000000000123016f000b00000002001d000a00000003001d000000000223013f00000001022002700000000003120019000000000123004b000000000100001900000001010040390000000101100190000003e00000c13d000c00000003001d0000000801000029000000000010043500000000010004140000081b0210009c0000081b01008041000000c00110021000000828011001c70000000702000029206720620000040f0000000102200190000015c70000613d000000000101043b0000000c030000290000000001310019000000000101041a0000081b01100197000000090110006c00000e420000213d000000010100008a000000000113004b000003e00000613d00000001033000390000000b02000029000000000123004b00000e460000413d00000eaa0000013d000008a40420009c0000000b080000290000007d0000213d0000004004200039000000400040043f000000200420003900000000001404350000000000320435000000400100043d000c00000001001d00000ed10000013d000000010200008a000008d6040000410000000b03000029000000000223004b00000000020000190000000002042019000008d603300197000008d60530009c0000000004008019000008d603300167000008d60330009c000000000402c0190000001102000039000000000302041a000000000404004b00000f310000613d0000000901300029000000000331004b000000000300001900000001030040390000000103300190000003e00000c13d000000000012041b0000000c0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a00000008032002700000089d0330019700000009033000290000089d0430009c000003e00000213d000008d7022001970000000803300210000008d803300197000000000223019f000000000021041b000010ee0000013d0000000b02000029000b00000002001d000000000102004b0000000001000019000007bf0000613d000000080100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000b02000029000006ed0000013d000001000500008a000000000454016f0000000000430435000000000101004b000000200400003900000000040060190000003f01400039000000200300008a000000000131016f0000000003210019000000000113004b00000000010000190000000101004039000c00000003001d000008290330009c0000007d0000213d00000001011001900000007d0000c13d0000000c01000029000000400010043f0000000c01000029000008d20110009c0000007d0000213d0000000c030000290000002001300039000700000001001d000000400010043f0000000000030435000000400500043d0000002001500039000000e0030000390000000000310435000008d30100004100000000001504350000000041080434000000e0035000390000000000130435000b00000005001d0000010003500039000000000501004b00000eee0000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000615004b00000ee70000413d000000000413001900000000000404350000001f01100039000a0020000000920000000a0110017f00000000031300190000000b0400002900000000014300490000004004400039000000000014043500000000160204340000000005630436000000000206004b00000f040000613d000000000200001900000000035200190000000004210019000000000404043300000000004304350000002002200039000000000362004b00000efd0000413d000900000005001d000800000006001d000000000165001900000000000104350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000b040000290000008002400039000000000300041000000000003204350000006002400039000000000012043500000008010000290000001f011000390000000a0110017f00000009011000290000000002410049000000c0034000390000000000230435000000a00240003900000000000204350000000c0200002900000000020204330000000001210436000000000302004b000009690000613d00000000030000190000000705000029000000005405043400000000014104360000000103300039000000000423004b00000f2b0000413d000009690000013d000000090430006c000010310000813d000000400100043d0000006402100039000008db0300004100000000003204350000004402100039000008dc03000041000000000032043500000024021000390000002703000039000007f60000013d000000400100043d000400000001001d00000020021000390000083001000041000200000002001d0000000000120435000008ab01000041000000000010043900000006010000290000000400100443000000600100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000000040200002900000040022000390000000000120435000008ab010000410000000000100439000000060100002900000004001004430000000801000029000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b0000000402000029000000600220003900000000001204350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000404000029000000a0024000390000000303000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000008310140009c0000007d0000213d0000000403000029000000c001300039000000400010043f0000081b0100004100000002040000290000081b0240009c0000000004018019000000400240021000000000030304330000081b0430009c00000000030180190000006003300210000000000223019f00000000030004140000081b0430009c0000000003018019000000c001300210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000400200043d000000220320003900000005040000290000000000430435000008ad030000410000000000320435000000020320003900000000001304350000081b0400004100000000010004140000081b0310009c00000000010480190000081b0320009c0008081b0000004500000000020480190000004002200210000000c001100210000000000112019f000008ae011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d0000081b0320009c00000008030000290000000003024019000800000003001d0000000b03000029000008af0330009c000012d70000a13d0000006401200039000008b40300004100000000003104350000004401200039000008b5030000410000000000310435000000240120003900000022030000390000000000310435000008320100004100000000001204350000000401200039000000200200003900000000002104350000000801000029000000400110021000000835011001c70000206900010430000000000302004b000000000300001900000fce0000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000343016f0000000102200210000000000423019f000010580000013d00000002020003670000000b0300002900000006050000290000000906000029000000000452034f000000000404043b000000200330003900000000004304350000002005500039000000000465004b00000fda0000413d0000001a02000039000000000202041a000600000002001d0000000b020000290000000002020433000000000202004b000010060000613d000980100000003d0000000003000019000c00000003001d00000005023002100000000a022000290000000002020433000000000321004b00000ff40000813d0000000000100435000000200020043f000000000100041400000ff70000013d0000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000000902000029206720620000040f0000000102200190000015c70000613d000000000101043b0000000c0300002900000001033000390000000b020000290000000002020433000000000223004b00000fea0000413d000000060110006c0000102a0000c13d0000000e01000039000c00000001001d000000000101041a000000020110008c000010920000c13d000000400100043d00000044021000390000090903000041000000000032043500000024021000390000001f0300003900000c280000013d0000083201000041000000080400002900000000001404350000000b03000029000001240130003900000833020000410000000000210435000001040130003900000834020000410000000000210435000000e40130003900000027020000390000000000210435000000c401300039000000200200003900000000002104350000081b010000410000081b0240009c0000000004018019000000400140021000000835011001c70000206900010430000000400100043d0000004402100039000008fe03000041000000000032043500000024021000390000000d0300003900000c280000013d00000000010104330000089d01100197000000090110006c000010ca0000813d000000400100043d0000006402100039000008d90300004100000000003204350000004402100039000008da03000041000000000032043500000024021000390000002e03000039000007f60000013d0000089b0300004100000020060000390000000005000019000000000706001900000080067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b000010420000413d000000a005700039000000000424004b000010560000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010220021000000001042001bf000000000041041b000000010540019000000001034002700000007f0230018f000000000203c0190000001f0320008c00000000030000190000000103002039000000000334013f0000000103300190000001450000c13d000000400300043d000000000505004b000010730000613d0000000000100435000000000102004b000010760000613d0000089b0100004100000000040000190000000005340019000000000601041a000000000065043500000001011000390000002004400039000000000524004b0000106b0000413d000010760000013d000001000100008a000000000114016f00000000001304350000081b040000410000081b0130009c000000000304801900000040013002100000081b0320009c00000000020480190000006002200210000000000112019f00000000020004140000081b0320009c0000000002048019000000c002200210000000000112019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000501043b00000000010004140000081b0210009c0000081b01008041000000c00110021000000821011001c70000800d020000390000000203000039000008c7040000410000067f0000013d00000002010000390000000c02000029000000000012041b00000008010000290000082201100197000b00000001001d00000000001004350000000f01000039000a00000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f00000007030000290009089d0030019b0000000102200190000015c70000613d000000000101043b000000000101041a00000008011002700000089d01100197000000090110006c000011f20000c13d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000101041a000000ff01100190000012970000c13d000000400100043d00000064021000390000090703000041000000000032043500000044021000390000090803000041000000000032043500000024021000390000002203000039000007f60000013d000000090130006a000000000012041b0000000c0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a00000008032002700000089d03300197000000090330006a0000089d0430009c000003e00000213d000008d7022001970000000803300210000008d803300197000000000223019f000000000021041b0000001001000039000000000101041a000000000200041a000008220110019700000010022002700000082202200197000000090300002920671a230000040f0000000c0100002920671b570000040f000000400100043d0000000b0200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d020000390000000203000039000008dd04000041000009e60000013d000000400100043d000500000001001d00000020021000390000083001000041000300000002001d0000000000120435000008ab01000041000000000010043900000007010000290000000400100443000000600100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000000050200002900000040022000390000000000120435000008ab010000410000000000100439000000070100002900000004001004430000000801000029000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b0000000502000029000000600220003900000000001204350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000504000029000000a0024000390000000403000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000008310140009c0000007d0000213d0000000503000029000000c001300039000000400010043f0000081b0100004100000003040000290000081b0240009c0000000004018019000000400240021000000000030304330000081b0430009c00000000030180190000006003300210000000000223019f00000000030004140000081b0430009c0000000003018019000000c001300210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000400200043d000000220320003900000006040000290000000000430435000008ad030000410000000000320435000000020320003900000000001304350000081b0400004100000000010004140000081b0310009c00000000010480190000081b0320009c0008081b0000004500000000020480190000004002200210000000c001100210000000000112019f000008ae011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d0000081b0320009c00000008030000290000000003024019000800000003001d0000000b03000029000008af0330009c00000fb80000213d000000000101043b00000060032000390000000b04000029000000000043043500000040032000390000000a040000290000000000430435000000200320003900000009040000290000000000430435000000000012043500000000000004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000008020000290000004002200210000000000121019f000008b0011001c70000000102000039206720620000040f000000000301001900000060033002700000081b03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000011a40000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b0000119d0000413d000000000605004b000011b20000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013880000613d00000000010004330000082202100198000013150000613d000000400300043d000008320200004100000000002304350000000402300039000000200400003900000000004204350000000c0410014f00000044023000390000081b010000410000081b0530009c000000000103401900000024033000390000004001100210000008b1011001c70000082204400198000013b50000c13d00000019040000390000000000430435000008b30300004100000000003204350000206900010430000008d6050000410000000a0600002900000000072b0049000000400870008c00000000080000190000000008054019000008d607700197000000000907004b00000000090000190000000009052019000008d60770009c000000000908c019000000000709004b000015c70000c13d000000400700043d000008a40870009c0000007d0000213d0000004008700039000000400080043f000000000821034f000000000808043b000008a30980009c000015c70000213d00000000088704360000002009200039000000000991034f000000000909043b000008a30a90009c000015c70000213d0000002006600039000000000098043500000000007604350000004002200039000000000742004b000011d00000413d000001c20000013d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d000700000002001d000008d50220009c0000007d0000213d000000000101043b000000000101041a00000007030000290000006002300039000000400020043f00000020043000390000000902000029000600000004001d000000000024043500000001020000390000000000230435000000400230003900000080011002700000089d01100197000500000002001d00000000001204350000000b0100002900000000001004350000000a01000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d00000007020000290000000002020433000000000202004b000000000101043b000000000201041a000008ff02200197000000010220c1bf000000060300002900000000030304330000000803300210000008d803300197000000000232019f0000000503000029000000000303043300000080033002100000090003300197000000000232019f000000000021041b000000400100043d0000000902000029000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d02000039000000020300003900000901040000410000000b050000292067205d0000040f0000000101200190000015c70000613d000000080100002920671b570000040f000010ae0000013d00000000010004150000000e0110008a0005000500100218000e00000000001d000008e5010000410000000000100439000000000100041000000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800202000039206720620000040f0000000102200190000015790000613d000000000101043b000000000101004b000013190000c13d0000000701000029000000ff0110018f000000010110008c0000000001000019000000010100603900000005020000290000000502200270000000000201001f0000131c0000c13d000001000100008a000000000200041a000000000112016f00000001011001bf000000040200006b000001dd0000613d000300010000003d000001e00000013d000000010300008a000000000334004b0000000c07000029000003e00000613d0000000103400039000000000423004b00000ce00000413d00000cf90000013d00000001041002700000000b214000f9000000000214004b0000000004018019000c00000004001d0000000b0140006b000003e00000413d000000080100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d0000000c030000290000000b02300069000000000101043b0000000001210019000000000101041a0000081b01100197000000090110006c000013830000a13d0000000003000019000b00000002001d00000e3d0000013d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d000008d50320009c0000007d0000213d000000000101043b0000006003200039000000400030043f000000000101041a00000080031002700000089d033001970000004004200039000900000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000089d01100197000700000001001d0000000000120435000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d0000001903000039000000000203041a000000000101043b0000001504000039000000000404041a00000822044001980000139d0000613d0000001705000039000000000505041a000000080550014f000008220550019700000000544500d9000000000541004b0000139c0000813d000000000102004b0000000004000019000003e00000c13d000013bb0000013d000000000101043b00000060032000390000000b040000290000000000430435000000400320003900000007040000290000000000430435000000200320003900000009040000290000000000430435000000000012043500000000000004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000008020000290000004002200210000000000121019f000008b0011001c70000000102000039206720620000040f000000000301001900000060033002700000081b03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000012ff0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000012f80000413d000000000605004b0000130d0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f000300000001035500000001022001900000135b0000613d0000000001000433000b00000001001d00000822011001980000136b0000c13d000000400100043d0000004402100039000008bc0300004100000e110000013d00000005010000290000000501100270000000000100001f000000400100043d0000006402100039000008e60300004100000000003204350000004402100039000008e7030000410000103b0000013d0000000103000039000000000103041a00000824011001970000000602000029000000000121019f000000000013041b000000400100043d00000000002104350000081b0500004100000000020004140000081b0420009c00000000020580190000081b0410009c00000000010580190000004001100210000000c002200210000000000112019f00000828011001c70000800d0200003900000826040000412067205d0000040f0000000101200190000015c70000613d00002710020000390000001801000039000200000001001d000000000021041b000000400100043d000500000002001d000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d020000390000000103000039000008b8040000412067205d0000040f0000000101200190000015c70000613d000000000100041a0000ff0001100190000001ea0000613d0000000c010000290000082201100198000013ac0000c13d000000400100043d0000004402100039000008fa0300004100000df00000013d000000400200043d0000001f0430018f0000000505300272000013680000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013600000413d000000000604004b00000d1f0000613d00000d120000013d00000000001004350000000901000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a0000000103200039000000000031041b0000000a0120006b000013980000c13d0000000b010000290000000c02000029206717400000040f0000000001000019000020680001042e000000010100008a000000000112004b000003e00000613d000000010320003900000e3d0000013d000000400200043d0000001f0430018f0000000505300272000013950000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000138d0000413d000000000604004b00000d1f0000613d00000d120000013d000000400100043d0000004402100039000008bb0300004100000aa20000013d0000000001410049000000000402004b0000000004000019000013bb0000613d0000000000300435000000000302004b000013ba0000613d000000010420008a0000090202200041000000000302041a000008a302300197000000000221004b0000000002040019000013a10000a13d0000008004300270000013bb0000013d000000070200006b0000141a0000c13d000000400100043d0000004402100039000008f90300004100000000003204350000002402100039000000170300003900000c280000013d0000001e040000390000000000430435000008b2030000410000000000320435000020690001043000000000040000190000001401000039000000000101041a000000000201004b00000a950000613d00000007324000b900000000211200d9000000090200002900000000020204330000089d022001970000000002210049000000000112004b00000000010000190000000101002039000000000101004b000000000200c0190009089d0020019c000013d60000c13d000000400100043d00000064021000390000090503000041000000000032043500000044021000390000090603000041000000000032043500000024021000390000002f03000039000007f60000013d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a00000080032002700000089d0330019700000009033000290000089d0430009c000003e00000213d000009030220019700000080033002100000090003300197000000000223019f000000000021041b0000001201000039000000000301041a0000000902300029000000000332004b000000000300001900000001030040390000000103300190000003e00000c13d000000000021041b000000080100002920671b570000040f0000001001000039000000000101041a00000822011001970000000802000029000000090300002920671a230000040f000000400100043d000000090200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d02000039000000020300003900000904040000410000000b050000292067205d0000040f0000000101200190000015c70000613d00000001010000390000000c02000029000000000012041b0000000001000019000020680001042e0000001002000039000000000302041a0000082403300197000000000113019f000000000012041b0000001101000039000c00000001001d0000000703000029000000000031041b000000800300043d000008290130009c0000007d0000213d0000001301000039000000000501041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f0000000105500190000001450000c13d000000200540008c000014440000413d0000001f0530003900000005055002700000089b065000410000089b05000041000000200730008c000000000506801900000000001004350000001f0440003900000005044002700000089b04400041000000000645004b000014440000813d000000000005041b0000000105500039000000000645004b000014400000413d000000200430008c0000144c0000413d00000000001004350000000b06300180000014580000c13d00000020050000390000089b04000041000014630000013d000000000403004b0000000004000019000014700000613d0000000304300210000000010500008a000000000445022f000000000454013f000000a00500043d000000000445016f0000000103300210000000000434019f000014700000013d0000089b040000410000002005000039000000000700001900000080085000390000000008080433000000000084041b000000200550003900000001044000390000002007700039000000000867004b0000145b0000413d000000000636004b0000146e0000813d0000000306300210000000f80660018f000000010700008a000000000667022f000000000676013f00000080055000390000000005050433000000000565016f000000000054041b000000010330021000000001043001bf000000000041041b0000001403000039000100000003001d0000000505000029000000000053041b000000000502041a0000000c02000029000000000602041a000000400200043d000000200320003900000060070000390000000000730435000000010740019000000001084002700000007f0380018f000000000308c01900000000006204350000001f0630008c00000000060000190000000106002039000000000664013f00000822055001970000000106600190000001450000c13d000000600620003900000000003604350000008006200039000000000707004b0000149b0000613d0000000000100435000000000103004b0000000001000019000014a10000613d0000089b0400004100000000010000190000000007610019000000000804041a000000000087043500000001044000390000002001100039000000000731004b000014930000413d000014a10000013d000001000100008a000000000114016f0000000000160435000000000103004b000000200100003900000000010060190000004003200039000000050400002900000000004304350000081b030000410000081b0420009c0000000002038019000000400220021000000080011000390000081b0410009c00000000010380190000006001100210000000000121019f00000000020004140000081b0420009c0000000002038019000000c002200210000000000121019f00000821011001c70000800d020000390000000203000039000008e9040000412067205d0000040f0000000101200190000015c70000613d0000000401000029000b08220010019b000000000100041a0000ff0001100190000001ea0000613d000000080100002900000822011001980000001602000039000000000302041a0000082403300197000000000313019f000000000032041b0000000002000019000014c80000613d00000822321001290000001504000039000000000304041a0000082403300197000000000223019f000800000004001d000000000024041b000000400200043d00000000001204350000081b0100004100000000030004140000081b0430009c00000000030180190000081b0420009c00000000020180190000004001200210000000c002300210000000000112019f00000828011001c70000800d020000390000000103000039000008ea040000412067205d0000040f0000000101200190000015c70000613d0000000801000029000000000101041a0000082201100198000014ef0000c13d0000000a010000290000000001010433000000000101004b000014f80000c13d000000400100043d0000004402100039000008f803000041000000000032043500000024021000390000000c0300002900000c280000013d0000000b0100006b000015530000c13d000000400100043d0000004402100039000008ec0300004100000000003204350000002402100039000000020300002900000c280000013d0000001902000039000000000102041a000700000002001d000000000002041b000000000201004b000015080000613d00000007020000290000000000200435000008a201100041000008ed0210009c000015080000413d000008a202000041000000000002041b0000000102200039000000000312004b000015040000413d0000000a010000290000000001010433000000000101004b000c00000000001d0000157a0000c13d0000000101000029000000000101041a0000000c0110006b000015c90000c13d000000000100041a0000ff0001100190000001ea0000613d0000001a010000390000000402000029000000000021041b000000400100043d00000000002104350000081b0400004100000000020004140000081b0320009c00000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d020000390000000103000039000c00000003001d000008d4040000412067205d0000040f0000000101200190000015c70000613d000000060600002900000010016002100000081f01100197000000000200041a0000082003200197000000000113019f000000000010041b00000000010004140000081b0310009c0000081b01008041000000c00110021000000821011001c7000000100220027000000822052001970000800d02000039000000030300003900000823040000412067205d0000040f0000000101200190000015c70000613d000000030100006b000006820000c13d000000000200041a000008e801200197000000000010041b000000400100043d0000000c0300002900000000003104350000081b0200004100000000050004140000081b0450009c00000000050280190000081b0410009c00000000010280190000004001100210000000c002500210000000000112019f00000828011001c70000800d0200003900000836040000410000067f0000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000000201004b000003e00000613d000008eb020000410000000000200439000000010110008a00000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000040110014f00000822011001970000001702000039000000000302041a0000082403300197000000000113019f000000000012041b000014e40000013d000000000001042f0005800d0000003d000b00000000001d000000000200001900000000040000190000000b0100002900000005011002100000000901100029000000000301043300000020013000390000000005010433000c08a30050019c000015d30000613d0000000005030433000808a30050019b000000080440006b000015da0000a13d0000000c0220006b000015e10000a13d0000000702000029000000000202041a000008290420009c0000007d0000213d00000001042000390000000705000029000000000045041b00000000005004350000000003030433000008a30330019700000000010104330000008001100210000000000131019f000008a202200041000000000012041b000000400100043d00000020021000390000000c0300002900000000003204350000000802000029000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f000008a8011001c700000002030000390000000502000029000008f1040000410000000b050000292067205d0000040f0000000101200190000015c70000613d0000000b02000029000b00010020003d0000000a0100002900000000010104330000000b0110006b0000000c0200002900000008040000290000157e0000413d0000000801000029000008f20110009c0000150d0000413d000000400100043d0000006402100039000008f30300004100000000003204350000004402100039000008f403000041000000000032043500000024021000390000002a03000039000007f60000013d00000000010000190000206900010430000000400100043d0000006402100039000008f60300004100000000003204350000004402100039000008f703000041000000000032043500000024021000390000002103000039000007f60000013d000000400100043d0000004402100039000008f503000041000000000032043500000024021000390000001c0300003900000c280000013d000000400100043d0000004402100039000008ee03000041000000000032043500000024021000390000001a0300003900000c280000013d000000400100043d0000006402100039000008ef0300004100000000003204350000004402100039000008f003000041000000000032043500000024021000390000002503000039000007f60000013d00000000430104340000000001320436000000000203004b000015f70000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000532004b000015f00000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000020030000390000000004310436000000003202043400000000002404350000004001100039000000000402004b0000160d0000613d000000000400001900000000051400190000000006430019000000000606043300000000006504350000002004400039000000000524004b000016060000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d000008d602000041000000830310008c00000000030000190000000003022019000008d604100197000000000504004b0000000002008019000008d60440009c000000000203c019000000000202004b0000163b0000613d00000002040003670000000402400370000000000602043b0000002402400370000000000202043b000008220320009c0000163b0000213d0000004403400370000000000303043b0000006405400370000000000705043b000008290570009c0000163b0000213d0000002305700039000000000515004b0000163b0000813d0000000405700039000000000454034f000000000504043b000008290450009c0000163b0000213d000000050850021000000024047000390000000007840019000000000117004b0000163b0000213d0000000001060019000000000001042d00000000010000190000206900010430000009120210009c000016420000813d0000004001100039000000400010043f000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000009130210009c0000164d0000813d0000006001100039000000400010043f000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000008290310009c000016600000213d0000000102200190000016600000c13d000000400010043f000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a601000041000020690001043000000000030100190000001f01300039000008d604000041000000000521004b00000000050000190000000005044019000008d606200197000008d601100197000000000761004b000000000400a019000000000161013f000008d60110009c000000000405c019000000000104004b000016b30000613d0000000204000367000000000134034f000000000501043b000008270150009c000016b50000813d00000005015002100000003f01100039000008a006100197000000400100043d0000000006610019000000000716004b00000000070000190000000107004039000008290860009c000016b50000213d0000000107700190000016b50000c13d000000400060043f0000000000510435000000060550021000000020033000390000000005530019000000000625004b000016b30000213d000000000653004b000016b20000813d000008d60600004100000000070100190000000008320049000000400980008c00000000090000190000000009064019000008d608800197000000000a08004b000000000a000019000000000a062019000008d60880009c000000000a09c01900000000080a004b000016b30000c13d000000400800043d000008a40980009c000016b50000213d0000004009800039000000400090043f000000000934034f000000000909043b000008a30a90009c000016b30000213d0000000009980436000000200a300039000000000aa4034f000000000a0a043b000008a30ba0009c000016b30000213d00000020077000390000000000a9043500000000008704350000004003300039000000000853004b000016910000413d000000000001042d00000000010000190000206900010430000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300000000031010434000008a30110019700000000011204360000000002030433000008a3022001970000000000210435000000000001042d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000016c90000c13d000000000001042d000000400100043d0000004402100039000008c603000041000000000032043500000832020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c7000020690001043000000010021002100000081f02200197000000000300041a0000082004300197000000000224019f000000000020041b0000081b0200004100000000040004140000081b0540009c0000000004028019000000c002400210000008220610019700000821012001c7000000100230027000000822052001970000800d02000039000000030300003900000823040000412067205d0000040f0000000101200190000016f00000613d000000000001042d0000000001000019000020690001043000000822022001970000000000200435000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000017010000613d000000000101043b000000000001042d00000000010000190000206900010430000000400100043d000009120210009c0000170c0000813d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300001000000000002000000000301041a000100000002001d000000000223004b000017250000a13d00000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f00000001022001900000172b0000613d000000000101043b0000000101100029000000000001042d000008a50100004100000000001004350000003201000039000000040010043f000008a6010000410000206900010430000000000100001900002069000104300000000002010019000000400100043d000009120310009c0000173a0000813d0000004003100039000000400030043f000000000202041a0000002003100039000000200420027000000000004304350000081b022001970000000000210435000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300005000000000002000500000002001d0000082201100197000200000001001d00000000001004350000000b01000039000300000001001d000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f00000001022001900000178a0000613d000000000101043b000000000101041a000400000001001d0000000201000039000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000403000029000408220030019b00000001022001900000178a0000613d000000000101043b000000000101041a000100000001001d0000000301000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f00000001022001900000178a0000613d00000005020000290000082207200197000000000101043b000000000201041a0000082402200197000000000272019f000000000021041b00000000010004140000081b0210009c0000081b01008041000000c00110021000000821011001c70000800d0200003900000004030000390000091404000041000000020500002900000004060000292067205d0000040f00000001012001900000178a0000613d0000000401000029000000050200002900000001030000292067178c0000040f000000000001042d000000000100001900002069000104300009000000000002000900000003001d00000822031001970000082201200197000700000001001d000800000003001d000000000113004b000019060000613d000000090100006b000019060000613d000000080100006b000018480000613d000000080100002900000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000201043b000000000102041a000600000001001d000000000101004b000019300000613d000500000002001d00000000002004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000400200043d000009120320009c000019330000813d000000000101043b0000004003200039000000400030043f000000060300002900030001003000920000000301100029000000000101041a0000081b03100197000000000332043600000020041002700000000000430435000600000004001d000000090140006c0000193e0000413d0000000001020433000400000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000004030000290000081b033001970000000102200190000019090000613d000000000101043b000008e00210009c0000190a0000813d0000000604000029000000090240006a000000000113004b000400000002001d000017f70000c13d000008990120009c000019110000213d000000050100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000301100029000000000201041a0000081b0220019700000004040000290000002003400210000000000232019f000000000021041b000018320000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000019090000613d000000000101043b000008ca0210009c0000190a0000213d000008cc0210009c00000004030000290000191b0000813d000009150230009c000019110000813d000000400400043d000008a40240009c000019330000213d0000004002400039000000400020043f0000000001140436000300000001001d00000000003104350000000501000029000000000201041a000008290120009c000019330000213d000200000004001d000100000002001d00000001012000390000000502000029000000000012041b00000000002004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000101100029000000020200002900000000020204330000081b02200197000000030300002900000000030304330000002003300210000000000223019f000000000021041b0000000404000029000000400100043d00000020021000390000000000420435000000060200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f000008a8011001c70000800d020000390000000203000039000009160400004100000008050000292067205d0000040f0000000101200190000019070000613d000000070100006b000019060000613d000000070100002900000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000301043b000000000203041a000000000102004b000800000003001d000018ab0000613d000600000002001d00000000003004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000400200043d000008a40320009c000019330000213d000000000101043b0000004003200039000000400030043f000000060300002900040001003000920000000401100029000000000101041a0000081b031001970000000003320436000000200410027000000000004304350000000901400029000900000001001d000600000004001d000000000141004b0000000001000019000000010100403900000001011001900000193e0000c13d0000000001020433000500000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000005030000290000081b033001970000000102200190000019090000613d000000000101043b000008ca0210009c0000190a0000213d000000000113004b000018b50000c13d0000000901000029000008990110009c0000000801000029000019110000213d00000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000401100029000000000201041a0000081b0220019700000009030000290000002003300210000000000232019f000018ee0000013d000000400100043d000008a40210009c000019330000213d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000600000000001d000018b50000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000019090000613d000000000101043b000008ca0210009c0000190a0000213d0000081b0210009c00000008030000290000191b0000213d0000000902000029000008990220009c000019110000213d000000400400043d000008a40240009c000019330000213d0000004002400039000000400020043f00000000021404360000000901000029000500000002001d0000000000120435000000000203041a000008290120009c000019330000213d000400000004001d000300000002001d0000000101200039000000000013041b00000000003004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000301100029000000040200002900000000020204330000081b02200197000000050300002900000000030304330000002003300210000000000223019f000000000021041b0000000604000029000000400100043d00000020021000390000000903000029000000000032043500000000004104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f000008a8011001c70000800d020000390000000203000039000009160400004100000007050000292067205d0000040f0000000101200190000019070000613d000000000001042d00000000010000190000206900010430000000000001042f000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e303000041000019210000013d000000400100043d00000064021000390000091703000041000000000032043500000044021000390000091803000041000000000032043500000024021000390000002703000039000019240000013d000000400100043d00000064021000390000091903000041000000000032043500000044021000390000091a030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000000400100043d000008a40210009c000019390000a13d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300000004002100039000000400020043f000000200210003900000000000204350000000000010435000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300004000000000002000008ab0100004100000000001004390000000001000412000300000001001d0000000400100443000000400100003900000024001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b00000822011001970000000002000410000200000002001d000000000112004b0000198d0000c13d000008ab01000041000000000010043900000003010000290000000400100443000000200100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b000400000001001d0000082e01000041000000000010043900000000010004140000081b0210009c0000081b01008041000000c0011002100000082f011001c70000800b02000039206720620000040f0000000102200190000019ea0000613d000000000101043b000000040110006c0000198d0000c13d000008ab0100004100000000001004390000000301000029000000040010044300000024000004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b000000000001042d000000400100043d000400000001001d00000020021000390000083001000041000100000002001d0000000000120435000008ab01000041000000000010043900000003010000290000000400100443000000600100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b000000040200002900000040022000390000000000120435000008ab010000410000000000100439000000030100002900000004001004430000008001000039000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b0000000402000029000000600220003900000000001204350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000019ea0000613d000000000101043b0000000404000029000000a0024000390000000203000029000000000032043500000080024000390000000000120435000000a00100003900000000001404350000091b0140009c000019eb0000813d0000000403000029000000c001300039000000400010043f0000081b0100004100000001040000290000081b0240009c0000000004018019000000400240021000000000030304330000081b0430009c00000000030180190000006003300210000000000223019f00000000030004140000081b0430009c0000000003018019000000c001300210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000019f10000613d000000000101043b000000000001042d000000000001042f000008a50100004100000000001004350000004101000039000000040010043f000008a601000041000020690001043000000000010000190000206900010430000008e00210009c000019f60000813d000000000001042d000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e3030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000008cc0210009c00001a0e0000813d000000000001042d000000400100043d00000064021000390000091903000041000000000032043500000044021000390000091a030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c700002069000104300005000000000002000000400400043d0000004405400039000000000035043500000020034000390000091c050000410000000000530435000008220220019700000024054000390000000000250435000000440200003900000000002404350000091d0240009c00001b0a0000813d00000822021001970000008005400039000000400050043f000008310140009c00001b0a0000213d000000c001400039000000400010043f0000002001000039000300000001001d0000000000150435000000a0014000390000091e06000041000000000061043500000000060404330000000001000414000000040420008c00001a730000c13d000000010100003200001ab40000613d000008290210009c00001b0a0000213d0000001f02100039000000200300008a000000000232016f0000003f02200039000000000232016f000000400900043d0000000002290019000000000392004b00000000030000190000000103004039000008290420009c00001b0a0000213d000000010330019000001b0a0000c13d000000400020043f0000001f0210018f00000000031904360000000304000367000000050110027200001a630000613d000000000500001900000005065002100000000007630019000000000664034f000000000606043b00000000006704350000000105500039000000000615004b00001a5b0000413d000000000502004b00001ab50000613d0000000501100210000000000414034f00000000011300190000000302200210000000000301043300000000032301cf000000000323022f000000000404043b0000010002200089000000000424022f00000000022401cf000000000232019f000000000021043500001ab50000013d000100000005001d0000081b040000410000081b0530009c000000000304801900000040033002100000081b0560009c00000000060480190000006005600210000000000535019f0000081b0310009c0000000001048019000000c001100210000000000115019f000200000002001d2067205d0000040f0003000000010355000000000301001900000060033002700001081b0030019d0000081b0530019800001acd0000613d0000001f035000390000091f033001970000003f033000390000092003300197000000400900043d0000000003390019000000000493004b00000000040000190000000104004039000008290630009c000000020a00002900001b0a0000213d000000010440019000001b0a0000c13d000000400030043f0000001f0450018f0000000003590436000000050550027200001aa40000613d000000000600001900000005076002100000000008730019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00001a9c0000413d000000000604004b00001ad00000613d0000000505500210000000000151034f00000000055300190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500001ad00000013d00000060090000390000000002000415000000050220008a00000005022002100000000001090433000000000301004b00001ad80000c13d000200000009001d000008e5010000410000000000100439000000040100003900000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800202000039206720620000040f000000010220019000001b3b0000613d0000000002000415000000050220008a00001aeb0000013d00000060090000390000008003000039000000020a0000290000000001090433000000010220019000001b270000613d0000000002000415000000040220008a0000000502200210000000000301004b00001adb0000613d0000000502200270000000000209001f00001af50000013d000200000009001d000008e50100004100000000001004390000000400a004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800202000039206720620000040f000000010220019000001b3b0000613d0000000002000415000000040220008a0000000502200210000000000101043b000000000101004b000000020900002900001b3c0000613d00000000010904330000000502200270000000000209001f000000000201004b00001b090000613d000008d602000041000000200310008c00000000030000190000000003024019000008d601100197000000000401004b000000000200a019000008d60110009c000000000203c019000000000102004b00001b100000c13d00000020019000390000000001010433000000000201004b0000000002000019000000010200c039000000000221004b00001b100000c13d000000000101004b00001b120000613d000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a601000041000020690001043000000000010000190000206900010430000000400100043d00000064021000390000092103000041000000000032043500000044021000390000092203000041000000000032043500000024021000390000002a030000390000000000320435000008320200004100000000002104350000000402100039000000030300002900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000000000201004b00001b4e0000c13d000000400200043d000300000002001d0000083201000041000000000012043500000004012000390000000102000029206715fe0000040f000000030400002900000000014100490000081b020000410000081b0310009c00000000010280190000081b0340009c000000000402801900000040024002100000006001100210000000000121019f0000206900010430000000000001042f000000400100043d00000044021000390000092303000041000000000032043500000024021000390000001d030000390000000000320435000008320200004100000000002104350000000402100039000000030300002900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c700002069000104300000081b020000410000081b0410009c00000000010280190000081b0430009c000000000302801900000040023002100000006001100210000000000121019f000020690001043000050000000000020000082201100197000500000001001d00000000001004350000000201000039000300000001001d000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000101041a000400000001001d000000050100002900000000001004350000000f01000039000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000400200043d000009130320009c00001d3a0000813d000000000101043b0000006003200039000000400030043f000000000301041a00000080013002700000089d0110019700000040042000390000000000140435000000ff043001900000000004000019000000010400c039000000000442043600000008023002700000089d022001970000000000240435000000000312004b0000000003000019000000050500002900001b9c0000a13d0000000002120049000009240120009c00001d750000813d0000001801000039000000000301041a00000000412300a900000000422100d9000000000232004b00001d750000c13d0000001402000039000000000202041a000000000302004b00001d1e0000613d00000000132100d90000000402000029000000000132004b00001c2b0000a13d000200000003001d000000000105004b00001d240000613d00000000005004350000000301000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d00000002030000290000000402300069000000000101043b000000000101041a000400000002001d000200000001001d000000000121004b00001d2e0000413d000000050100002900000000001004350000000301000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d00000004030000290000000202300069000000000101043b000000000021041b0000000401000039000000000201041a0000000002320049000000000021041b000000400100043d000000000031043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d0200003900000003030000390000092504000041000000050500002900000000060000192067205d0000040f000000010120019000001d0a0000613d000000050100002900000000001004350000000b01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000101041a00000000000004350000092602000041000000000202041a0000082201100197000008220220019700000004030000292067178c0000040f000000400100043d0000000d04000039000000000204041a000000000302004b00001d380000613d0000000000400435000008a40310009c00001d3a0000213d000200000004001d0000004003100039000000400030043f000008cf02200041000100000002001d000000000202041a0000081b03200197000000000331043600000020042002700000000000430435000300000004001d000000040240006c00001d750000413d0000000001010433000500000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000005030000290000081b03300197000000010220019000001d0c0000613d000000000101043b000008ca0210009c00001d0d0000213d0000000304000029000000040240006a000000000113004b00001cb60000c13d000008990120009c000000020100002900001d140000213d00000000001004350000002001200210000000010300002900001cb10000013d000000000132004b00001cb50000813d000000000105004b00001d550000613d00040000002300510000000403000039000000000203041a0000000401200029000000000221004b00000000020000190000000102004039000000010220019000001d750000c13d000200000003001d000000000013041b00000000005004350000000301000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d000000000031043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d0200003900000003030000390000092504000041000000000500001900000005060000292067205d0000040f000000010120019000001d0a0000613d0000000b01000039000000200010043f0000092601000041000000000101041a000300000001001d000000050100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000201041a00000003010000290000082201100197000008220220019700000004030000292067178c0000040f000000400100043d0000000202000029000000000202041a000009150220009c00001d670000813d0000000d04000039000000000204041a000000000302004b000500000004001d00001cd70000613d0000000000400435000008a40310009c00001d3a0000213d0000004003100039000000400030043f000008cf02200041000200000002001d000000000202041a0000081b03200197000000000331043600000020022002700000000000230435000400040020002d000000040220006b00000000020000190000000102004039000000010220019000001d750000c13d0000000001010433000300000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000003030000290000081b03300197000000010220019000001d0c0000613d000000000101043b000008e00210009c00001d0d0000813d000000000113004b000000050200002900001cdf0000c13d0000000401000029000008990110009c00001d140000213d0000000000200435000000040100002900000020011002100000000203000029000000000203041a0000081b02200197000000000112019f000000000013041b000000000001042d000500000002001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f000000010220019000001d0c0000613d000000000101043b000008ca0210009c00001d0d0000213d0000081b0210009c0000000205000029000000050400002900001d400000213d000008990240009c00001d140000213d000000400200043d000008a40320009c00001d3a0000213d0000004003200039000000400030043f00000000031204360000000000430435000000000105041a000008290410009c00001cff0000a13d00001d3a0000013d000008a40210009c00001d3a0000213d0000004002100039000000400020043f00000020021000390000000000020435000000000001043500001cdf0000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f000000010220019000001d0c0000613d000000000101043b000008ca0210009c00001d0d0000213d000008cc0210009c000000050500002900001d400000813d0000000402000029000009150220009c00001d140000813d000000400200043d000008a40320009c00001d3a0000213d0000004003200039000000400030043f000000000312043600000004010000290000000000130435000000000105041a000008290410009c00001d3a0000213d0000000104100039000000000045041b000000000050043500000000020204330000081b0220019700000000030304330000002003300210000000000223019f000008ce01100041000000000021041b000000000001042d00000000010000190000206900010430000000000001042f000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e30300004100001d460000013d000000400100043d0000006402100039000009170300004100000000003204350000004402100039000009180300004100000000003204350000002402100039000000270300003900001d490000013d000008a50100004100000000001004350000001201000039000000040010043f000008a6010000410000206900010430000000400100043d0000006402100039000008f603000041000000000032043500000044021000390000092c0300004100000000003204350000002402100039000000210300003900001d490000013d000000400100043d00000064021000390000092a03000041000000000032043500000044021000390000092b0300004100000000003204350000002402100039000000220300003900001d490000013d000008a40210009c00001d700000a13d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000400100043d00000064021000390000091903000041000000000032043500000044021000390000091a030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000000400100043d00000044021000390000092903000041000000000032043500000024021000390000001f030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c700002069000104300000006402100039000009270300004100000000003204350000004402100039000009280300004100000000003204350000002402100039000000300300003900001d490000013d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300003000000000002000100000001001d0000082201100197000300000001001d00000000001004350000000f01000039000200000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001df60000613d000000000101043b000000000101041a000000ff0110019000001df80000613d000000030100002900000000001004350000000201000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001df60000613d000000400200043d000009130320009c00001e0d0000813d000000000101043b0000006003200039000000400030043f000000000101041a00000080031002700000089d033001970000004004200039000300000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000089d01100197000200000001001d0000000000120435000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f000000010220019000001e130000613d0000001903000039000000000203041a000000000101043b0000001504000039000000000404041a000008220440019800001dd70000613d0000001705000039000000000505041a000000010550014f000008220550019700000000544500d9000000000541004b00001dd60000813d000000000102004b000000000100001900001de60000613d000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300000000001410049000000000402004b00001de50000613d0000000000300435000000000302004b00001de50000613d000000010420008a0000090202200041000000000302041a000008a302300197000000000221004b000000000204001900001dda0000a13d000000800130027000001de60000013d00000000010000190000001402000039000000000202041a000000000302004b00001e140000613d00000002311000b900000000122100d9000000030100002900000000010104330000089d011001970000000001120049000000000221004b00000000020000190000000102002039000000000202004b000000000100c019000000000001042d00000000010000190000206900010430000000400100043d000000640210003900000907030000410000000000320435000000440210003900000908030000410000000000320435000000240210003900000022030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000000001042f000008a50100004100000000001004350000001201000039000000040010043f000008a60100004100002069000104300000001502000039000000000202041a000008220220019800001e240000613d0000001703000039000000000303041a000000000113013f000008220110019700000000212100d9000000000001042d0000000001000019000000000001042d0000001904000039000000000304041a0000001505000039000000000505041a000008220550019800001e380000613d0000001706000039000000000606041a000000000116013f000008220110019700000000515100d9000000000512004b00001e370000813d000000000103004b000000000100001900001e4f0000c13d000000000001042d00000000021200490000000001030019000000000501004b00001e470000613d000000000503004b00001e490000613d0000000000400435000000010610008a0000090201100041000000000501041a000008a301500197000000000112004b000000000106001900001e390000a13d0000008001500270000000000001042d0000000001000019000000000001042d000008a50100004100000000001004350000003201000039000000040010043f000008a6010000410000206900010430000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300000000002010019000000400100043d000009120310009c00001e620000813d0000004003100039000000400030043f000000000202041a000000200310003900000080042002700000000000430435000008a3022001970000000000210435000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300007000000000002000400000001001d0000000021010434000300000002001d000000000101004b00001f090000613d0000001906000039000000000106041a000000000006041b000000000201004b00001e7c0000613d0000000000600435000008a201100041000008ed0210009c00001e7c0000413d000008a202000041000000000002041b0000000102200039000000000312004b00001e780000413d00000004010000290000000001010433000000000101004b00001ecd0000613d0002800d0000003d000000000500001900000000020000190000000004000019000100000006001d00000005015002100000000301100029000000000301043300000020013000390000000007010433000008a30870019800001ed30000613d0000000007030433000008a307700197000000000447004b00001ee00000a13d000000000228004b00001ef20000a13d000000000206041a000008270420009c00001eda0000813d0000000104200039000000000046041b00000000006004350000000003030433000008a30330019700000000010104330000008001100210000000000131019f000008a202200041000000000012041b000000400100043d00000020021000390000000000820435000000000071043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f000008a8011001c700000002030000390000000202000029000008f104000041000600000005001d000700000008001d000500000007001d2067205d0000040f000000010120019000001f070000613d0000000605000029000000010550003900000004010000290000000001010433000000000115004b0000000703000029000000000203001900000005010000290000000004010019000000010600002900001e850000413d000008f20110009c00001ece0000413d000000400100043d0000006402100039000008f30300004100000000003204350000004402100039000008f403000041000000000032043500000024021000390000002a0300003900001efb0000013d00000000030000190000001401000039000000000101041a000000000113004b00001f100000c13d000000000001042d000000400100043d0000004402100039000008f503000041000000000032043500000024021000390000001c0300003900001ee60000013d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000400100043d0000004402100039000008ee03000041000000000032043500000024021000390000001a030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c70000206900010430000000400100043d0000006402100039000008ef0300004100000000003204350000004402100039000008f0030000410000000000320435000000240210003900000025030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c7000020690001043000000000010000190000206900010430000000400100043d0000004402100039000008f80300004100000000003204350000002402100039000000110300003900001ee60000013d000000400100043d0000006402100039000008f60300004100000000003204350000004402100039000008f70300004100000000003204350000002402100039000000210300003900001efb0000013d0000006003300210000000200510003900000000003504350000003403100039000000000043043500000000002104350000005401100039000000000001042d000008270420009c00001f420000813d00000005052002100000003f04500039000008a006400197000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000008290860009c00001f420000213d000000010770019000001f420000c13d000000400060043f00000000002404350000000002150019000000000332004b00001f480000213d000000000312004b00001f400000a13d00000002030003670000000005040019000000000613034f000000000606043b000000200550003900000000006504350000002001100039000000000621004b00001f390000413d0000000001040019000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000000100001900002069000104300007000000000002000700000002001d000009240220009c00001fab0000813d000400000001001d0000082201100197000600000001001d00000000001004350000000f01000039000500000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001fa90000613d0000000603000029000000400400043d000009130240009c00001fc00000813d000000000101043b000000000101041a0000006002400039000000400020043f00000020054000390000000702000029000200000005001d000000000025043500000001020000390000000000240435000300000004001d000000400240003900000080011002700000089d01100197000100000002001d000000000012043500000000003004350000000501000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001fa90000613d00000003020000290000000002020433000000000202004b000000000101043b000000000201041a000008ff02200197000000010220c1bf000000020300002900000000030304330000000803300210000008d803300197000000000232019f0000000103000029000000000303043300000080033002100000090003300197000000000232019f000000000021041b000000400100043d0000000702000029000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d020000390000000203000039000009010400004100000006050000292067205d0000040f000000010120019000001fa90000613d000000040100002920671b570000040f000000000001042d00000000010000190000206900010430000000400100043d00000064021000390000092d03000041000000000032043500000044021000390000092e03000041000000000032043500000024021000390000002c030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000500000000000200000000030200190000001a02000039000000000202041a000100000002001d000300000003001d0000000032030434000400000003001d000000000202004b00001ff60000613d000280100000003d0000000003000019000500000003001d000000050230021000000004022000290000000002020433000000000321004b00001fe40000813d0000000000100435000000200020043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000000202000029206720620000040f000000010220019000001ff90000613d00001fef0000013d0000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001ff90000613d0000000503000029000000000101043b000000010330003900000003020000290000000002020433000000000223004b00001fd20000413d000000010110006c00001ffb0000c13d000000000001042d00000000010000190000206900010430000000400100043d0000004402100039000008fe03000041000000000032043500000024021000390000000d030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c7000020690001043000000822011001970000000103000039000000000203041a0000082402200197000000000212019f000000000023041b000000400200043d00000000001204350000081b0100004100000000040004140000081b0540009c00000000040180190000081b0520009c00000000020180190000004001200210000000c002400210000000000112019f00000828011001c70000800d0200003900000826040000412067205d0000040f0000000101200190000020250000613d000000000001042d00000000010000190000206900010430000000000001042f0000081b030000410000081b0410009c000000000103801900000040011002100000081b0420009c00000000020380190000006002200210000000000112019f00000000020004140000081b0420009c0000000002038019000000c002200210000000000112019f00000821011001c70000801002000039206720620000040f00000001022001900000203c0000613d000000000101043b000000000001042d0000000001000019000020690001043000000000050100190000000000200439000000050130008c0000204c0000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000631004b000020440000413d0000081b0100004100000000020004140000081b0420009c00000000020180190000081b0430009c00000000030180190000006001300210000000c002200210000000000112019f0000092f011001c70000000002050019206720620000040f00000001022001900000205c0000613d000000000101043b000000000001042d000000000001042f00002060002104210000000102000039000000000001042d0000000002000019000000000001042d00002065002104230000000102000039000000000001042d0000000002000019000000000001042d0000206700000432000020680001042e00002069000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff496e7465726e616c20766f746520747261636b657200000000000000000000004956540000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff0000000000000000000000000000000000000000ffff0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000020000002600000000000000000ccdd1baf560d2682736fa25752c8ccc0c5fc4079b245b0acf7389776308d5b1f00000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3020000000000000000000000000000000000000000000180000000000000000002000000000000000000000000000000000000000000024000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b02000002000000000000000000000000000000040000000000000000000000008b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f000000000000000000000000000000000000000000000000ffffffffffffff3f08c379a000000000000000000000000000000000000000000000000000000000616c697a696e6700000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e69746900000000000000000000000000000000000000840000000000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249800000002000000000000000000000000000002000000010000000000000000000000000000000000000000000000000000000000000000000000000091ddadf300000000000000000000000000000000000000000000000000000000c955725400000000000000000000000000000000000000000000000000000000e85858d800000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000fc0c546900000000000000000000000000000000000000000000000000000000fc0c546a00000000000000000000000000000000000000000000000000000000ffa1ad7400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f56c854700000000000000000000000000000000000000000000000000000000eac989f700000000000000000000000000000000000000000000000000000000eac989f800000000000000000000000000000000000000000000000000000000f1127ed800000000000000000000000000000000000000000000000000000000e85858d900000000000000000000000000000000000000000000000000000000e90a182f00000000000000000000000000000000000000000000000000000000dd62ed3d00000000000000000000000000000000000000000000000000000000e12f3a6000000000000000000000000000000000000000000000000000000000e12f3a6100000000000000000000000000000000000000000000000000000000e834a83400000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000de032f5800000000000000000000000000000000000000000000000000000000d972e8ac00000000000000000000000000000000000000000000000000000000d972e8ad00000000000000000000000000000000000000000000000000000000dc2f511b00000000000000000000000000000000000000000000000000000000c955725500000000000000000000000000000000000000000000000000000000d505accf00000000000000000000000000000000000000000000000000000000a4ef1f7700000000000000000000000000000000000000000000000000000000bb22dcca00000000000000000000000000000000000000000000000000000000c6e8d98100000000000000000000000000000000000000000000000000000000c6e8d98200000000000000000000000000000000000000000000000000000000c78d598500000000000000000000000000000000000000000000000000000000bb22dccb00000000000000000000000000000000000000000000000000000000c3cda52000000000000000000000000000000000000000000000000000000000ab803a7500000000000000000000000000000000000000000000000000000000ab803a7600000000000000000000000000000000000000000000000000000000b6d8f79f00000000000000000000000000000000000000000000000000000000a4ef1f7800000000000000000000000000000000000000000000000000000000a9059cbb000000000000000000000000000000000000000000000000000000009ab24eaf00000000000000000000000000000000000000000000000000000000a3f4df7d00000000000000000000000000000000000000000000000000000000a3f4df7e00000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000009ab24eb0000000000000000000000000000000000000000000000000000000009b642de1000000000000000000000000000000000000000000000000000000009691cab4000000000000000000000000000000000000000000000000000000009691cab5000000000000000000000000000000000000000000000000000000009a0e7d660000000000000000000000000000000000000000000000000000000091ddadf40000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000003a46b1a70000000000000000000000000000000000000000000000000000000070a08230000000000000000000000000000000000000000000000000000000007ecebdff000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000008e539e8c000000000000000000000000000000000000000000000000000000007ecebe000000000000000000000000000000000000000000000000000000000084b0196e0000000000000000000000000000000000000000000000000000000075aa9bc50000000000000000000000000000000000000000000000000000000075aa9bc6000000000000000000000000000000000000000000000000000000007cb647590000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000715018a600000000000000000000000000000000000000000000000000000000587cde1d00000000000000000000000000000000000000000000000000000000684de1f400000000000000000000000000000000000000000000000000000000684de1f5000000000000000000000000000000000000000000000000000000006fcfff4500000000000000000000000000000000000000000000000000000000587cde1e000000000000000000000000000000000000000000000000000000005c19a95c00000000000000000000000000000000000000000000000000000000495906560000000000000000000000000000000000000000000000000000000049590657000000000000000000000000000000000000000000000000000000004bf5d7e9000000000000000000000000000000000000000000000000000000003a46b1a8000000000000000000000000000000000000000000000000000000003cf3a0250000000000000000000000000000000000000000000000000000000023b872dc00000000000000000000000000000000000000000000000000000000313ce566000000000000000000000000000000000000000000000000000000003644e514000000000000000000000000000000000000000000000000000000003644e515000000000000000000000000000000000000000000000000000000003950935100000000000000000000000000000000000000000000000000000000313ce567000000000000000000000000000000000000000000000000000000003480e6ab000000000000000000000000000000000000000000000000000000002ddbd139000000000000000000000000000000000000000000000000000000002ddbd13a000000000000000000000000000000000000000000000000000000002e7ba6ef0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000276801ec00000000000000000000000000000000000000000000000000000000144fa6d6000000000000000000000000000000000000000000000000000000001be1955f000000000000000000000000000000000000000000000000000000001be19560000000000000000000000000000000000000000000000000000000001f8d1d5000000000000000000000000000000000000000000000000000000000144fa6d70000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000000000000000000000000000000000000f56b96c00000000000000000000000000000000000000200000008000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000004000000000000000000000000066de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090f4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d0000000000000000000000000000000000ffffffffffffffffffffffffffffff000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c969500000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000000000000000000000000000000000000400000000000000000000000006e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9000000000000000000000000000000000000000000000000ffffffffffffff1f310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000190100000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000420000000000000000000000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a00000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000006400000000000000000000000045524332305065726d69743a20696e76616c6964207369676e6174757265000064697361626c656420666f7220766f74696e6720706f77657200000000000000756500000000000000000000000000000000000000000000000000000000000045434453413a20696e76616c6964207369676e6174757265202773272076616c45524332305065726d69743a206578706972656420646561646c696e6500000002000000000000000000000000000000000000200000008000000000000000006c339c0bee516a4df5d7074ba7a974856d609f83666e915aa4a0f90e06989dc5e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf000000000000000000000000000000000000000000000000ffffffffffffff5f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000045434453413a20696e76616c6964207369676e617475726500000000000000004552433230566f7465733a207369676e617475726520657870697265640000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000005472616e73666572206661696c65642e000000000000000000000000000000003b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000000000000000000000000000000000000000000000000000005472616e63686556657374696e674d65726b6c654469737472696275746f72000000000000000000000000000000000000000000000000c000000000000000004f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572d70c1392a974224e639e7a9607dcb2c766826aecfe2dc356f442ce0488b01e1ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f42cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd10000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000010000d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4b3512b0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf0f00000000000000000000000000000000000000000000000000000000000000914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a46000000000000000000000000000000000000000000000000ffffffffffffff9f8000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000ff00000000000000000000000000000000ffffffffffffffffffffffffffffff006f6e5265636f726420746f74616c00000000000000000000000000000000000064656372656173652067726561746572207468616e20646973747269627574697220746f74616c0000000000000000000000000000000000000000000000000064656372656173652067726561746572207468616e206469737472696275746fd81661cef4e40e0f1f97384c033d606e4d6b570554fc3524568d8f9fc84c838861646a7573746d656e74203e206d61782075696e7431323000000000000000006d75737420696e697469616c697a65206265666f72652061646a757374696e6700000000000000000000000000000000000000000000000000010000000000006d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000382062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e20344552433230566f7465733a20667574757265206c6f6f6b7570000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c726561ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff433127dedcff849792656a12f4a9dbc0efeb80df5cce6310f53481a93cd71c71dccb8d94a5bbd764ed844afa20f2581be18d3fa84b36855e86a8f0c9316cba7d80b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3492064656d616e64206d6f72652072616e646f6d6e6573730000000000000000944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96967472616e6368652074696d65206d75737420696e63726561736500000000000072656173650000000000000000000000000000000000000000000000000000007472616e63686520766573746564206672616374696f6e206d75737420696e635104929ca78e46ba25dca9557731ec873a03ae745d3ee194d262cc4820662a1c00000000000000000000000000000000000000000000000000000000f4865701616e20312032313030290000000000000000000000000000000000000000000076657374696e6720656e6473206166746572203431303234343438303020284a7472616e63686520766573746564206672616374696f6e203d3d20300000000073000000000000000000000000000000000000000000000000000000000000006c617374207472616e636865206d757374207665737420616c6c20746f6b656e7472616e636865732072657175697265640000000000000000000000000000004469737472696275746f723a20746f74616c20697320300000000000000000004469737472696275746f723a20746f6b656e20697320616464726573732830296e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420690200000000000000000000000000000000000054000000a00000000000000000696e76616c69642070726f6f6600000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000db598eb8e0a3d3d5c2e02e4cab1ee8b65bb20e48fc7b42f4c76272de4cdd2434944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9694ff000000000000000000000000000000ffffffffffffffffffffffffffffffff47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d46d61626c65207269676874206e6f7700000000000000000000000000000000004469737472696275746f723a206e6f206d6f726520746f6b656e7320636c616965640000000000000000000000000000000000000000000000000000000000004469737472696275746f723a20636c61696d206e6f7420696e697469616c697a5265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a20696e73756666696369656e7420616c6c6f77616e6365000000ac657d3615bd618ee537848e2b33acd2a9df67d4776485ab6922b0421d324d2970a082310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000000000000000000000000000000000000000064000000800000000000000000efc1fd16ea80a922086ee4e995739d59b025c1bcea6d1f67855747480c83214b746f6b656e206973206164647265737328302900000000000000000000000000036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0000000000000000000000000000000000000000000000000ffffffffffffffc0000000000000000000000000000000000000000000000000ffffffffffffffa03134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f0000000100000000000000000000000000000000000000000000000000000000dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724323420626974730000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2032322062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2033000000000000000000000000000000000000000000000000ffffffffffffff40a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff805361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656400000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe06f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000000000000000000000000000000000000001000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76766572666c6f77696e6720766f746573000000000000000000000000000000004552433230566f7465733a20746f74616c20737570706c79207269736b73206f45524332303a206d696e7420746f20746865207a65726f206164647265737300636500000000000000000000000000000000000000000000000000000000000045524332303a206275726e20616d6f756e7420657863656564732062616c616e45524332303a206275726e2066726f6d20746865207a65726f2061646472657375696e74313230292e6d617800000000000000000000000000000000000000004469737472696275746f723a20746f74616c416d6f756e74203e20747970652802000002000000000000000000000000000000000000000000000000000000002536907b336817ff3a940af976e4e4006701a428e79e03c3b37bd90b4680c832", + "entries": [ + { + "constructorArgs": [], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xc0A6eaa87d38313d48d35a5Be3df51F0d3c089D2", + "txHash": "0x7b4ca3dc425c04100b14d3d85175454562bd07e2351754836bf1bd99d9648371" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json new file mode 100644 index 00000000..fefb64ff --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json @@ -0,0 +1,247 @@ +{ + "sourceName": "contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol", + "contractName": "TrancheVestingMerkleDistributorFactory", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "distributor", + "type": "address" + } + ], + "name": "DistributorDeployed", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche[]", + "name": "_tranches", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "deployDistributor", + "outputs": [ + { + "internalType": "contract TrancheVestingMerkleDistributor", + "name": "distributor", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "distributors", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getImplementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche[]", + "name": "_tranches", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "predictDistributorAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x00010000000000020008000000000002000000000001035500000000030100190000006003300270000000e1033001970000000102200190000000c80000c13d0000008002000039000000400020043f000000040230008c000002380000413d000000000201043b000000e002200270000000e50420009c000000f80000213d000000e80420009c0000011e0000613d000000e90220009c000002380000c13d0000000002000416000001040430008c000002380000413d000000000202004b000002380000c13d0000000402100370000000000d02043b000000e302d0009c000002380000213d0000004402100370000000000502043b000000ea0250009c000002380000213d0000002302500039000000000232004b000002380000813d0000000406500039000000000261034f000000000202043b000000f60720009c000001180000813d0000001f07200039000000200c00008a0000000007c7016f0000003f077000390000000007c7016f000000eb0870009c000001180000213d0000008007700039000000400070043f000000800020043f00000000052500190000002405500039000000000535004b000002380000213d0000002005600039000000000551034f0000001f0620018f0000000507200272000000450000613d00000000080000190000000509800210000000000a95034f000000000a0a043b000000a0099000390000000000a904350000000108800039000000000978004b0000003d0000413d000000000806004b000000540000613d0000000507700210000000000575034f0000000306600210000000a007700039000000000807043300000000086801cf000000000868022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000585019f0000000000570435000000a00220003900000000000204350000006402100370000000000202043b000000ea0520009c000002380000213d0000002305200039000000000535004b000002380000813d0000000405200039000000000551034f000000000605043b000000ea0560009c000001180000213d00000005056002100000003f05500039000000ec05500197000000400400043d0000000005540019000000000745004b00000000070000190000000107004039000000ea0850009c000001180000213d0000000107700190000001180000c13d000000400050043f0000000000640435000000240220003900000006056002100000000005250019000000000735004b000002380000213d000000000606004b000001c60000c13d000000a402100370000000000602043b000000e30260009c000002380000213d000000c402100370000000000702043b000000e30270009c000002380000213d00020000000c001d0000002402100370000000000202043b0000008403100370000000000503043b000000e401100370000000000801043b000000800300003900000000010d0019000300000004001d037d02db0000040f000000f2020000410000000000200439000000000200041200000004002004430000002400000443000400000001001d000000e1030000410000000001000414000000e10210009c0000000001038019000000c001100210000000f7011001c70000800502000039037d03780000040f00000001022001900000023a0000613d000000000101043b0000008802100270000000f802200197000000f9022001c700000000002004350000007801100210000000fa011001c7000000200010043f000000fb010000410000000002000414000000090010043f00000004010000290000000d0010043f00000060010000390000004d0010043f0000004d0100008a0000006d0010043f000000e10120009c000000e102008041000000c001200210000000fc011001c70000800602000039037d03730000040f0000000102200190000000b60000613d000000000101043b000400e30010019c0000020e0000c13d000000400100043d00000044021000390000010403000041000000000032043500000024021000390000001703000039000000000032043500000105020000410000000000210435000000040210003900000020030000390000000000320435000000e102000041000000e10310009c0000000001028019000000400110021000000106011001c70000037f000104300000000002000416000000000202004b000002380000c13d0000001f02300039000000e202200197000000a002200039000000400020043f0000001f0230018f0000000504300272000000db0000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000d30000413d000000000502004b000000ea0000613d0000000504400210000000000141034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000200130008c000002380000413d000000a00100043d000000e30210009c000002380000213d000000800010043f000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000e4010000410000037e0001042e000000e60420009c000001370000613d000000e70220009c000002380000c13d0000000002000416000001040430008c000002380000413d000000000202004b000002380000c13d0000000402100370000000000902043b000000e30290009c000002380000213d0000004402100370000000000402043b000000ea0240009c000002380000213d0000002302400039000000000232004b000002380000813d0000000405400039000000000251034f000000000202043b000000ea0620009c000001180000213d0000001f06200039000000200700008a000000000676016f0000003f06600039000000000676016f000000eb0760009c000001480000a13d000001070100004100000000001004350000004101000039000000040010043f00000108010000410000037f000104300000000002000416000000240330008c000002380000413d000000000202004b000002380000c13d0000000401100370000000000101043b000000000200041a000000000221004b000002380000813d037d02ce0000040f0000000302200210000000000101041a000000000121022f000000e301100197000000ff0220008c0000000001002019000000400200043d0000000000120435000000e101000041000000e10320009c00000000020180190000004001200210000000f4011001c70000037e0001042e0000000001000416000000000101004b000002380000c13d0000000001000412000800000001001d000700000000001d000080050100003900000044030000390000000004000415000000080440008a0000000504400210000000f202000041037d03590000040f000000e301100197000000800010043f000000f5010000410000037e0001042e0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000434004b000002380000213d0000002004500039000000000441034f0000001f0520018f00000005062002720000015d0000613d00000000070000190000000508700210000000000a84034f000000000a0a043b000000a0088000390000000000a804350000000107700039000000000867004b000001550000413d000000000705004b0000016c0000613d0000000506600210000000000464034f0000000305500210000000a006600039000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f0000000000460435000000a00220003900000000000204350000006402100370000000000202043b000000ea0420009c000002380000213d0000002304200039000000000434004b000002380000813d0000000404200039000000000441034f000000000604043b000000ea0460009c000001180000213d00000005046002100000003f04400039000000ec05400197000000400400043d0000000005540019000000000745004b00000000070000190000000107004039000000ea0850009c000001180000213d0000000107700190000001180000c13d000000400050043f0000000000640435000000240220003900000006056002100000000005250019000000000735004b000002380000213d000000000606004b000001ea0000c13d000000a402100370000000000602043b000000f00260009c000002380000813d000000c402100370000000000702043b000000e30270009c000002380000213d0000002402100370000000000202043b0000008403100370000000000503043b000000e401100370000000000801043b00000080030000390000000001090019037d02db0000040f000000400400043d000400000004001d0000003802400039000000000300041000000000003204350000002402400039000000f10300004100000000003204350000000002000412000600000002001d000500000000001d000300000001001d000080050100003900000044030000390000000004000415000000060440008a0000000504400210000000f202000041037d03590000040f000000040300002900000014023000390000000000120435000000580130003900000003020000290000000000210435000000f30100004100000000001304350000000c013000390000003702000039037d03430000040f00000004030000290000007802300039000000000012043500000043013000390000005502000039037d03430000040f000000e3011001970000012f0000013d000000ed0600004100000000070400190000000008230049000000400980008c00000000090000190000000009064019000000ed08800197000000000a08004b000000000a000019000000000a062019000000ed0880009c000000000a09c01900000000080a004b000002380000c13d000000400800043d000000ee0980009c000001180000213d0000004009800039000000400090043f000000000921034f000000000909043b000000ef0a90009c000002380000213d0000000009980436000000200a200039000000000aa1034f000000000a0a043b000000ef0ba0009c000002380000213d00000020077000390000000000a9043500000000008704350000004002200039000000000852004b000001c80000413d000000770000013d000000ed0600004100000000070400190000000008230049000000400a80008c000000000a000019000000000a064019000000ed08800197000000000b08004b000000000b000019000000000b062019000000ed0880009c000000000b0ac01900000000080b004b000002380000c13d000000400800043d000000ee0a80009c000001180000213d000000400a8000390000004000a0043f000000000a21034f000000000a0a043b000000ef0ba0009c000002380000213d000000000aa80436000000200b200039000000000bb1034f000000000b0b043b000000ef0cb0009c000002380000213d00000020077000390000000000ba043500000000008704350000004002200039000000000852004b000001ec0000413d0000018f0000013d000000000100041a000000ea0210009c000001180000213d0000000102100039000000000020041b0000000000000435000000fd01100041000000000201041a000000fe022001970000000405000029000000000252019f000000000021041b000000e103000041000000400100043d000100000001001d0000000001000414000000e10210009c0000000001038019000000c001100210000000ff011001c70000800d0200003900000002030000390000010004000041037d03730000040f0000000101200190000002380000613d00000101010000410000000000100439000000040100002900000004001004430000000001000414000000e10210009c000000e101008041000000c00110021000000102011001c70000800202000039037d03780000040f00000001022001900000023a0000613d000000000101043b000000000101004b0000023b0000c13d00000000010000190000037f00010430000000000001042f00000103010000410000000105000029000000000015043500000000010003670000000402100370000000000202043b000000e302200197000000040350003900000000002304350000002402100370000000000202043b0000004403500039000000e004000039000000000043043500000024035000390000000000230435000000e402500039000000800300043d00000000003204350000010402500039000000000403004b000002590000613d00000000040000190000000005240019000000a006400039000000000606043300000000006504350000002004400039000000000534004b000002520000413d000000000423001900000000000404350000001f03300039000000020330017f00000001040000290000006404400039000001000530003900000000005404350000000002230019000000030300002900000000030304330000000002320436000000000403004b000002750000613d00000000040000190000000307000029000000200770003900000000050704330000000065050434000000ef0550019700000000055204360000000006060433000000ef06600197000000000065043500000040022000390000000104400039000000000534004b000002690000413d0000008403100370000000000303043b000000010500002900000084045000390000000000340435000000a403100370000000000303043b000000e303300197000000a4045000390000000000340435000000c403500039000000c401100370000000000101043b000000e301100197000000000013043500000000010004140000000403000029000000040330008c0000029b0000613d00000001050000290000000002520049000000e103000041000000e10450009c000000000403001900000000040540190000004004400210000000e10520009c00000000020380190000006002200210000000000242019f000000e10410009c0000000001038019000000c001100210000000000121019f0000000402000029037d03730000040f0000000102200190000002a80000613d0000000101000029000000ea0110009c000001180000213d0000000103000029000000400030043f00000004010000290000000000130435000000e101000041000000e10230009c00000000030180190000004001300210000000f4011001c70000037e0001042e000000400200043d000000000301001900000060033002700000001f0430018f000000e1033001970000000505300272000002b80000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002b00000413d000000000604004b000002c70000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000e101000041000000e10420009c000000000201801900000040012002100000006002300210000000000121019f0000037f00010430000000000200041a000000000212004b000002d50000a13d000000fd0110004100000000000004350000000002000019000000000001042d000001070100004100000000001004350000003201000039000000040010043f00000108010000410000037f00010430000000400900043d000000600a900039000001000b0000390000000000ba0435000000400a90003900000000002a0435000000e3021001970000002001900039000000000021043500000000a2030434000001200390003900000000002304350000014003900039000000000b02004b000002f20000613d000000000b000019000000000c3b0019000000000dba0019000000000d0d04330000000000dc0435000000200bb00039000000000c2b004b000002eb0000413d000000000a23001900000000000a04350000001f0a200039000000200200008a000000000a2a016f0000000003a30019000000000a930049000000200aa0008a000000800b9000390000000000ab0435000000000a0404330000000003a30436000000000b0a004b0000030d0000613d000000000b0000190000002004400039000000000c04043300000000dc0c0434000000ef0cc00197000000000cc30436000000000d0d0433000000ef0dd001970000000000dc04350000004003300039000000010bb00039000000000cab004b000003010000413d00000100049000390000000000840435000000e304700197000000e0079000390000000000470435000000e304600197000000c0069000390000000000460435000000a00490003900000000005404350000000003930049000000200430008a00000000004904350000001f03300039000000000323016f0000000002930019000000000332004b00000000030000190000000103004039000000ea0420009c0000033a0000213d00000001033001900000033a0000c13d000000400020043f000000e102000041000000e10310009c000000000102801900000040011002100000000003090433000000e10430009c00000000030280190000006003300210000000000113019f0000000003000414000000e10430009c0000000003028019000000c002300210000000000112019f000000ff011001c70000801002000039037d03780000040f0000000102200190000003400000613d000000000101043b000000000001042d000001070100004100000000001004350000004101000039000000040010043f00000108010000410000037f0001043000000000010000190000037f00010430000000000001042f000000e103000041000000e10410009c00000000010380190000004001100210000000e10420009c00000000020380190000006002200210000000000112019f0000000002000414000000e10420009c0000000002038019000000c002200210000000000112019f000000ff011001c70000801002000039037d03780000040f0000000102200190000003570000613d000000000101043b000000000001042d00000000010000190000037f0001043000000000050100190000000000200439000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000231004b0000035c0000413d000000e1010000410000000002000414000000e10420009c0000000002018019000000e10430009c00000000030180190000006001300210000000c002200210000000000112019f00000109011001c70000000002050019037d03780000040f0000000102200190000003720000613d000000000101043b000000000001042d000000000001042f00000376002104210000000102000039000000000001042d0000000002000019000000000001042d0000037b002104230000000102000039000000000001042d0000000002000019000000000001042d0000037d000004320000037e0001042e0000037f00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000aaf10f4100000000000000000000000000000000000000000000000000000000aaf10f4200000000000000000000000000000000000000000000000000000000d0dd5a7a0000000000000000000000000000000000000000000000000000000050b492ba00000000000000000000000000000000000000000000000000000000552ccdd8000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf3ff310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0000000000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000001000000000000000002000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff0000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf33cda33511d41a8a5431b1770c5bc0ddd62e1cd30555d16659b89c0d60f4f9f570200000000000000000000000000000000000037000000090000000000000000290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000448708bcd9fda3435ba79d40bb017e884dcbed0b1e972743c8fd32f6c5ff47bb1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000003480e6ab00000000000000000000000000000000000000000000000000000000455243313136373a2063726561746532206661696c656400000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000020000020000000000000000000000000000000000000000000000000000000009d5e4eb8d9f1d5f4119183b11d17d8d23cfcb13f58991ee0fcf88ebc97385e2", + "entries": [ + { + "constructorArgs": [ + "0x5CD85a2C91ba4420E0247c3bB7CEe1299EA150c8" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0x5B8a021F311BDAbE7DcA7bEf84DBF3D1FFa80846", + "txHash": "0xe772ca59c07200d28734bcf17ece4446cea62cc665ef0c831051adf6b0e1429b" + }, + { + "constructorArgs": [ + "0x9B4cF0bD0bfEF166302f110cf57faa8Af94BeAaD" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0x64EDCC756F7A6c8dAEEb36965538dF8573309B66", + "txHash": "0x6e0a00af992b06a2988a3388548190c10037bffacd928dfa6342707ae9fee22d" + }, + { + "constructorArgs": [ + "0xE705edf757c8054CE6ef380Bc8B6B9C078116118" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0x817EE5e652e6728C8E2b4Fc03686011fB14FF60E", + "txHash": "0xaaf811319571da46cd83b68e8e914ffe57a0e67d51f6dbf13f16cafa42f85c70" + }, + { + "constructorArgs": [ + "0x5C47e665Ad28228D77Af8eC6cef574a66db35EA4" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xB5038A9Fe45A4d97Bde18Ee90FFA97B59D90f1b7", + "txHash": "0x25d9332f76f3ee755768a2f682131bf7f04f5f41bf800e4dade292023ae5a59e" + }, + { + "constructorArgs": [ + "0xc0A6eaa87d38313d48d35a5Be3df51F0d3c089D2" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xC8F2dff2644542308CCa56D6ed6A41d1AC2F6Aee", + "txHash": "0xbf2034e7c7e5f0ef356f945556ed6a8831c5d0997ff0bb64e3b2044cbd7d2d11" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json new file mode 100644 index 00000000..4b128641 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json @@ -0,0 +1,987 @@ +{ + "sourceName": "contracts/ts/sale/v2.1/FlatPriceSale.sol", + "contractName": "FlatPriceSale_v_2_1", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_feeBips", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "_feeRecipient", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "baseCurrencyValue", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenValue", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenFee", + "type": "uint256" + } + ], + "name": "Buy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address payable", + "name": "feeRecipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "feeBips", + "type": "uint256" + } + ], + "name": "ImplementationConstructor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "indexed": false, + "internalType": "struct Config", + "name": "config", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "string", + "name": "baseCurrency", + "type": "string" + }, + { + "indexed": false, + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "nativeOracle", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "nativePaymentsEnabled", + "type": "bool" + } + ], + "name": "Initialize", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "distributor", + "type": "address" + } + ], + "name": "RegisterDistributor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract IERC20Upgradeable", + "name": "token", + "type": "address" + }, + { + "components": [ + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + } + ], + "indexed": false, + "internalType": "struct PaymentTokenInfo", + "name": "paymentTokenInfo", + "type": "tuple" + } + ], + "name": "SetPaymentTokenInfo", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepNative", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "indexed": false, + "internalType": "struct Config", + "name": "config", + "type": "tuple" + } + ], + "name": "Update", + "type": "event" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseCurrency", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "buyWithNative", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Upgradeable", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "buyWithToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "buyerTotal", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "config", + "outputs": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + } + ], + "name": "generatePseudorandomValue", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + } + ], + "name": "getFairQueueTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Upgradeable", + "name": "token", + "type": "address" + } + ], + "name": "getPaymentToken", + "outputs": [ + { + "components": [ + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + } + ], + "internalType": "struct PaymentTokenInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "internalType": "struct Config", + "name": "_config", + "type": "tuple" + }, + { + "internalType": "string", + "name": "_baseCurrency", + "type": "string" + }, + { + "internalType": "bool", + "name": "_nativePaymentsEnabled", + "type": "bool" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "_nativeTokenPriceOracle", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable[]", + "name": "tokens", + "type": "address[]" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck[]", + "name": "oracles", + "type": "address[]" + }, + { + "internalType": "uint8[]", + "name": "decimals", + "type": "uint8[]" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "isOpen", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOver", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "root", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "isValidMerkleProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "metrics", + "outputs": [ + { + "internalType": "uint256", + "name": "purchaseCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "buyerCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseTotal", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nativeTokenPriceOracle", + "outputs": [ + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Upgradeable", + "name": "", + "type": "address" + } + ], + "name": "paymentTokens", + "outputs": [ + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dest", + "type": "address" + } + ], + "name": "payments", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_distributor", + "type": "address" + } + ], + "name": "registerDistributor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Upgradeable", + "name": "token", + "type": "address" + } + ], + "name": "sweepToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenQuantity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenDecimals", + "type": "uint256" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "oracle", + "type": "address" + } + ], + "name": "tokensToBaseCurrency", + "outputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "total", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "internalType": "struct Config", + "name": "_config", + "type": "tuple" + } + ], + "name": "update", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "payee", + "type": "address" + } + ], + "name": "withdrawPayments", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x0004000000000002001d00000000000200000000030100190000006004300270000005440340019700030000003103550002000000010355000005440040019d00000001022001900000005c0000c13d0000008007000039000000400070043f000000040230008c000000850000413d000000000201043b000000e002200270000005510420009c000000870000213d000005650420009c000000ac0000213d0000056f0420009c000001d30000a13d000005700420009c000002240000213d000005730420009c000002980000613d000005740220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b001b05460010019b000005460110009c000000850000213d0000009701000039000000000101041a000005af0200004100000000002004390000054601100197001a00000001001d000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000101004b000000850000613d000000400500043d000005d501000041000000000015043500000004015000390000001b02000029000000000021043500000000010004140000001a02000029000000040320008c000000570000613d0000054404000041000005440310009c0000000001048019000005440350009c00000000040540190000004003400210000000c001100210000000000131019f00000595011001c7001b00000005001d150a15000000040f0000001b0500002900000000030100190000006003300270000105440030019d000005440330019700030000000103550000000102200190000007750000613d0000057d0150009c000007a60000213d000000400050043f00000000010000190000150b0001042e0000000002000416000000000202004b000000850000c13d0000001f023000390000054502200197000000c002200039000000400020043f0000001f0230018f00000005043002720000006f0000613d00000000050000190000000506500210000000000761034f000000000707043b000000c00660003900000000007604350000000105500039000000000645004b000000670000413d000000000502004b0000007e0000613d0000000504400210000000000141034f0000000302200210000000c004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000400130008c000000850000413d000000c00300043d000000e00400043d0000054605400197000005460140009c000000e30000a13d00000000010000190000150c00010430000005520420009c0000011a0000213d0000055c0420009c000001de0000a13d0000055d0420009c0000023b0000213d000005600420009c000002b30000613d000005610120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000059c0100004100000000001004390000000001000410000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800a02000039150a15050000040f000000010220019000000fe10000613d000000000901043b000000ce01000039000000000201041a00000000010004140000054604200197000000040240008c000005eb0000c13d00000001020000390000000101000031000006d00000013d000005660420009c000001f20000a13d000005670420009c000002560000213d0000056a0420009c000002be0000613d0000056b0120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d603000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000039d0000c13d000000d505000039000000000c05041a000000d405000039000000000b05041a000000d305000039000000000a05041a000000d205000039000000000905041a000000d105000039000000000805041a000000d005000039000000000705041a000000cf05000039000000000605041a000000ce05000039000000000d05041a000000800010043f000000000404004b001b00000006001d001a00000007001d001900000008001d001800000009001d00170000000a001d00160000000b001d00150000000c001d00140000000d001d000005f40000613d0000000000300435000000000201004b000006950000c13d000000a001000039000006a00000013d000000000100041a0000ff0002100190000001be0000c13d000000ff0210018f000000ff0220008c000001040000613d000000ff011001bf000000000010041b000000ff01000039000000400200043d00000000001204350000054401000041001a00000003001d0000000003000414001900000004001d000005440430009c0000000003018019000005440420009c00000000020180190000004001200210000000c002300210000000000112019f0000054b011001c70000800d0200003900000001030000390000054c04000041001b00000005001d150a15000000040f00000019040000290000001a030000290000001b050000290000000101200190000000850000613d000000400100043d000000000203004b000002780000613d000000000205004b000002780000c13d00000044021000390000054f030000410000000000320435000000240210003900000011030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000005530420009c0000020e0000a13d000005540420009c0000025f0000213d000005570420009c000002c90000613d000005580220009c000000850000c13d0000000002000416000000840430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d000005460220009c000000850000213d0000002402100370000000000202043b001a00000002001d0000004402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d001800040020003d0000001804100360000000000404043b001900000004001d0000057d0440009c000000850000213d0000002404200039001700000004001d0000001902400029000000000232004b000000850000213d0000006402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000141034f000000000101043b001600000001001d0000057d0110009c000000850000213d000000240220003900000016010000290000000501100210001400000001001d001300000002001d0000000001210019000000000131004b000000850000213d001500000007001d0000057e01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000000002000411001200000002001d000000000112004b0000081d0000c13d000000cf01000039000000000101041a000000000201004b000008a70000c13d000000190100006b000008940000c13d000000d301000039000000000101041a001800000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000180210006c000009b80000a13d000000d402000039000000000202041a000000000221004b000009d80000813d000000d002000039000000000202041a000000d903000039000000000303041a000000000223004b000009e80000813d000000d502000039000000000302041a000000000203004b0000000002000019000001970000613d0000054602300198000005d20000613d000000db03000039000000000303041a000000120330014f0000054603300197000005464220012900000000322300d9000000180110006a000000000121004b00000a7d0000a13d0000001b010000290000000000100435000000cd01000039001800000001001d000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000400200043d000005840320009c000007a60000213d000000000101043b0000004003200039000000400030043f000000000101041a000000a003100270000000ff0330018f000000200420003900000000003404350000054601100198000000000012043500000b040000c13d000000400100043d000000440210003900000589030000410000000000320435000000240210003900000015030000390000010e0000013d000000400100043d000000640210003900000547030000410000000000320435000000440210003900000548030000410000000000320435000000240210003900000027030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c000000000102801900000040011002100000054a011001c70000150c00010430000005750420009c0000048b0000613d000005760420009c000003770000613d000005770120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d901000039000002370000013d000005620420009c0000053c0000613d000005630120009c0000038e0000613d000005640120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d901000039000000000101041a000000d802000039000000000202041a000000d703000039000000000303041a000000800030043f000000a00020043f000000c00010043f000005a1010000410000150b0001042e0000056c0420009c000005650000613d0000056d0420009c000003a30000613d0000056e0120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000006501000039000000000201041a00000546052001970000000003000411000000000335004b000005d80000c13d000005aa02200197000000000021041b00000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059e011001c70000800d020000390000000303000039000005ae040000410000000006000019000007260000013d000005590420009c0000056e0000613d0000055a0420009c000004750000613d0000055b0220009c000000850000c13d0000000002000416000000640330008c000000850000413d000000000202004b000000850000c13d0000004402100370000000000302043b000005460230009c000000850000213d0000000402100370000000000402043b0000002401100370000000000201043b0000000001040019150a11290000040f000005fd0000013d000005710420009c000002d20000613d000005720220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000000000100435000000da01000039000000200010043f00000040020000390000000001000019150a14ea0000040f000000000101041a000000800010043f0000058a010000410000150b0001042e0000055e0420009c000002f60000613d0000055f0220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000000000100435000000cd01000039000000200010043f00000040020000390000000001000019150a14ea0000040f000000000101041a0000054602100197000000800020043f000000a001100270000000ff0110018f000000a00010043f0000059b010000410000150b0001042e000005680420009c000003130000613d000005690120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000006501000039000002cd0000013d000005550420009c0000035a0000613d000005560120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000c001000039000000400010043f0000000301000039000000800010043f0000057801000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e002000039150a100b0000040f000000c00110008a0000054402000041000005440310009c0000000001028019000000600110021000000579011001c70000150b0001042e000000a00040043f000000800030043f000000000031043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f0000054b011001c70000800d020000390000000203000039001b00000003001d0000054d04000041150a15000000040f0000000101200190000000850000613d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a00010044300000100002004430000001b0100002900000120001004430000054e010000410000150b0001042e0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000006502000039000000000202041a00000546022001970000000003000411000000000232004b000005d80000c13d000000000201004b000007170000c13d0000054901000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f000005d901000041000000c40010043f000005d6010000410000150c000104300000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d150a11140000040f000005fd0000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d150a10340000040f000005fd0000013d0000000001000416000000000101004b000000850000c13d000000cc01000039000000000101041a0000054601100197000000800010043f0000058a010000410000150b0001042e0000000001000416000000000101004b000000850000c13d000000d301000039000000000101041a001b00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001b0210006b0000000002000019000002f40000813d000000d402000039000000000202041a000000000112004b0000000002000019000002f40000a13d000000d001000039000000000101041a000000d902000039000000000202041a000000000112004b00000000020000190000000102004039000000010120018f000005fd0000013d0000000001000416000000000101004b000000850000c13d000000d401000039000000000101041a001b00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001b0110006b000005fb0000a13d000000d001000039000000000101041a000000d902000039000000000202041a000000000112004b00000000010000190000000101008039000005fc0000013d0000000002000416000000240430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d0000057d0220009c000000850000213d0000001b0430006a000005a402000041000001240340008c00000000030000190000000003024019001a00000004001d000005a404400197000000000504004b000000000200a019000005a40440009c000000000203c019000000000202004b000000850000c13d000001a002000039000000400020043f000000ce09000039000000000309041a0000054603300197000000800030043f000000cf0a00003900000000030a041a000000a00030043f000000d00b00003900000000030b041a000000c00030043f000000d10c00003900000000030c041a000000e00030043f000000d20d00003900000000030d041a000001000030043f000000d30e00003900000000030e041a000001200030043f000000d40f00003900000000030f041a000001400030043f000000d507000039000000000307041a000001600030043f000000d608000039000000000408041a000000010540019000000001064002700000007f0360018f000000000306c0190000001f0630008c00000000060000190000000106002039000000000664013f00000001066001900000039d0000c13d000001a00030043f000000000505004b001900000007001d0000076e0000613d0000000000800435000000000403004b000007980000c13d0000002003000039000007ac0000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000006502000039000000000202041a00000546022001970000000003000411000000000232004b000005d80000c13d000000000201004b0000072b0000c13d0000054901000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000057a01000041000000c40010043f0000057b01000041000000e40010043f0000057c010000410000150c000104300000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b001b00000001001d000005460110009c000000850000213d000005da01000041000000800010043f0000000001000410000000840010043f00000000010004140000001b02000029000000040320008c0000060a0000c13d0000000103000031000000200130008c00000000040300190000002004008039000006350000013d0000000001000416000000000101004b000000850000c13d000000cb03000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0610008c00000000060000190000000106002039000000000662013f0000000106600190000005e10000613d000005940100004100000000001004350000002201000039000000040010043f00000595010000410000150c000104300000000002000416000001040430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d000005460220009c000000850000213d0000002402100370000000000202043b0000057d0420009c000000850000213d0000000002230049000005a404000041000001240520008c00000000050000190000000005044019000005a402200197000000000602004b000000000400a019000005a40220009c000000000405c019000000000204004b000000850000c13d0000004402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001a00000004001d0000057d0440009c000000850000213d0000002402200039001900000002001d0000001a02200029000000000232004b000000850000213d0000006402100370000000000402043b000000000204004b0000000002000019000000010200c039001800000004001d000000000224004b000000850000c13d0000008402100370000000000202043b001700000002001d000005460220009c000000850000213d000000a402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001600000004001d0000057d0440009c000000850000213d001400240020003d000000160200002900000005022002100000001402200029000000000232004b000000850000213d000000c402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001300000004001d0000057d0440009c000000850000213d001200240020003d000000130200002900000005022002100000001202200029000000000232004b000000850000213d000000e402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000141034f000000000101043b001100000001001d0000057d0110009c000000850000213d000f00240020003d000000110100002900000005011002100000000f01100029000000000131004b000000850000213d001500000007001d000000000100041a001000000001001d000dff000010019400000a890000c13d0000001001000029000000ff0110019000000000020000190000000102006039001c00000002001d00000000020004150000001c0220008a000e000500200218000000000101004b00000a8d0000c13d0000001001000029000005b20110019700000101011001bf000000000010041b000000400100043d000005b30210009c000007a60000213d0000012002100039000000400020043f000000ce02000039000a00000002001d000000000202041a00000546022001970000000002210436000000cf03000039000b00000003001d000000000303041a0000000000320435000000d002000039000900000002001d000000000202041a0000004003100039000c00000003001d0000000000230435000000d102000039000800000002001d000000000202041a00000060031000390000000000230435000000d202000039000700000002001d000000000202041a00000080031000390000000000230435000000d302000039000600000002001d000000000202041a000000a003100039000e00000003001d0000000000230435000000d402000039000500000002001d000000000302041a000000c0021000390000000000320435000000e003100039000000d504000039000400000004001d000000000404041a0000000000430435000000d603000039001000000003001d000000000603041a000000010760019000000001036002700000007f0430018f000000000403c0190000001f0340008c00000000030000190000000103002039000000000337004b0000039d0000c13d000000400300043d0000000005430436000000000707004b00000b8f0000613d00000010060000290000000000600435000000000604004b000000000600001900000b950000613d000005a50700004100000000060000190000000008560019000000000907041a000000000098043500000001077000390000002006600039000000000846004b0000046d0000413d00000b950000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000009702000039000000000202041a0000058c03000041000000800030043f000000840010043f00000000010004140000054602200197000000040320008c0000065f0000c13d0000000104000031000000200140008c00000020040080390000068a0000013d0000000002000416000000840430008c000000850000413d000000000202004b000000850000c13d0000002402100370000000000402043b000005460240009c000000850000213d0000004402100370000000000602043b0000057d0260009c000000850000213d0000002302600039000000000232004b000000850000813d0000000405600039000000000251034f000000000202043b0000057d0720009c000000850000213d00000000062600190000002406600039000000000636004b000000850000213d0000006406100370000000000606043b0000057d0760009c000000850000213d0000002307600039000000000737004b000000850000813d0000000407600039000000000771034f000000000707043b001b00000007001d0000057d0770009c000000850000213d00000024066000390000001b070000290000000507700210001700000006001d001a00000007001d001800000067001d000000180330006b000000850000213d0000000403100370000000000303043b001600000003001d0000006003400210000000a00030043f0000002003500039000000000131034f0000001f0320018f0000000504200272000004cc0000613d00000000050000190000000506500210000000000761034f000000000707043b000000b40660003900000000007604350000000105500039000000000645004b000004c40000413d000000000503004b000004db0000613d0000000504400210000000000141034f0000000303300210000000b404400039000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000b40120003900000000000104350000005301200039000000200300008a000000000331016f0000001401200039000000800010043f000005dd0230009c000007a60000813d0000008002300039000000400020043f00000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000006001100210000000c002300210000000000121019f000005de011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000000101043b0000001a020000290000003f02200039000005df02200197000000400300043d0000000002230019001a00000003001d000000000332004b000000000300001900000001030040390000057d0420009c000007a60000213d0000000103300190000007a60000c13d000000400020043f0000001b020000290000001a030000290000000002230436001900000002001d0000001803000029000000000230007c000000850000213d0000001b0200006b000005380000613d0000000202000367000000190300002900000017050000290000001806000029000000000452034f000000000404043b00000000034304360000002005500039000000000465004b000005100000413d0000001a020000290000000002020433000000000202004b000005380000613d001880100000003d0000000003000019001b00000003001d000000050230021000000019022000290000000002020433000000000321004b000005260000813d0000000000100435000000200020043f0000000001000414000005290000013d0000000000200435000000200010043f0000000001000414000005440210009c0000054401008041000000c00110021000000583011001c70000001802000029150a15050000040f0000000102200190000000850000613d000000000101043b0000001b0300002900000001033000390000001a020000290000000002020433000000000223004b0000051c0000413d000000160110006c00000000010000190000000101006039000005fd0000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d000000c002000039001b00000002001d000000400020043f000000800000043f000000a00000043f0000000000100435000000cd01000039000000200010043f00000040020000390000000001000019150a14ea0000040f001a00000001001d0000001b01000029150a0fed0000040f0000001a01000029000000000101041a0000054602100197000000c00020043f000000a001100270000000ff0110018f000000e00010043f000000400100043d0000000002210436000000e00300043d000000ff0330018f00000000003204350000054402000041000005440310009c00000000010280190000004001100210000005a3011001c70000150b0001042e0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b150a10ea0000040f000005fd0000013d000000440230008c000000850000413d0000000402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d001a00040020003d0000001a04100360000000000404043b001b00000004001d0000057d0440009c000000850000213d0000002404200039001900000004001d0000001b02400029000000000232004b000000850000213d0000002402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000141034f000000000101043b001800000001001d0000057d0110009c000000850000213d000000240220003900000018010000290000000501100210001700000001001d001600000002001d0000000001210019000000000131004b000000850000213d001500000007001d0000057e01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000000002000411001400000002001d000000000112004b0000081d0000c13d000000cf01000039000000000101041a000000000201004b0000083c0000c13d0000001b0100006b000008940000c13d000000d301000039000000000101041a001a00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001a0210006c000009b80000a13d000000d402000039000000000202041a000000000221004b000009d80000813d000000d002000039000000000202041a000000d903000039000000000303041a000000000223004b000009e80000813d000000d502000039000000000302041a000000000203004b000000000200001900000a720000613d000005460230019800000a6c0000c13d000005940100004100000000001004350000001201000039000000040010043f00000595010000410000150c000104300000054901000041000000800010043f0000002001000039000000840010043f000000a40010043f000005a901000041000000c40010043f000005d6010000410000150c00010430000000800010043f000000000505004b000006050000c13d000001000100008a000000000112016f000000a00010043f000000000104004b000000c001000039000000a001006039000007390000013d0000054402000041000005440310009c0000000001028019000000c001100210000000000209004b001b00000009001d000006c60000c13d0000000002040019000006ca0000013d000001000300008a000000000232016f000000a00020043f000000000101004b000000c001000039000000a001006039000006a00000013d0000000101000039000000010110018f000000400200043d00000000001204350000054401000041000005440320009c000000000201801900000040012002100000058b011001c70000150b0001042e0000000000300435000000020220008c0000072e0000813d000000a001000039000007390000013d0000054404000041000005440310009c0000000001048019000000c0011002100000058d011001c7150a15050000040f000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000006220000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000061a0000413d000000000705004b000006310000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000074e0000613d0000001f01400039000000600110018f00000080021001bf000000400020043f000000200330008c000000850000413d000000ce03000039000000000303041a000000a004100039000000800600043d001a00000006001d000005db0500004100000000005404350000054603300197000000a4041000390000000000340435000000c40310003900000000006304350000004403000039000000000032043500000100011001bf000000400010043f0000001b01000029150a13a60000040f000000400100043d0000001a02000029000000000021043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f0000054b011001c70000800d020000390000000203000039000005dc040000410000001b05000029000007260000013d0000054403000041000005440410009c0000000001038019000000c0011002100000058d011001c7150a15050000040f000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000006770000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000066f0000413d000000000705004b000006860000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000075e0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200240008c000000850000413d000000800200043d000000000021043500000040011002100000058b011001c70000150b0001042e000005a50200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b000006970000413d000000c001300039000000800210008a0000008001000039001300000001001d150a0ff80000040f000000400300043d001200000003001d000001000130003900000120020000390000000000210435000000e00130003900000015020000290000000000210435000000c00130003900000016020000290000000000210435000000a0013000390000001702000029000000000021043500000080013000390000001802000029000000000021043500000060013000390000001902000029000000000021043500000040013000390000001a02000029000000000021043500000020013000390000001b02000029000000000021043500000014010000290000054601100197000000000013043500000120023000390000001301000029150a100b0000040f0000001204000029000007440000013d0000059e011001c7000080090200003900000000030900190000000005000019150a15000000040f0000001b0900002900030000000103550000006001100270000105440010019d0000054401100197000000000301004b000006e40000c13d000000400100043d0000000102200190000007110000613d000000000091043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f0000054b011001c70000800d020000390000000103000039000005a004000041000007260000013d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b000000000500001900000001050040390000057d0630009c000007a60000213d0000000105500190000007a60000c13d000000400030043f0000001f0310018f000000000414043600000003050003670000000501100272000007010000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000006f90000413d000000000603004b000006d20000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000006d20000013d00000044021000390000059f030000410000000000320435000000240210003900000010030000390000010e0000013d000000ca02000039000000000302041a000005aa03300197000000000313019f000000000032041b000000800010043f00000544010000410000000002000414000005440320009c0000000002018019000000c001200210000005d7011001c70000800d020000390000000103000039000005d804000041150a15000000040f0000000101200190000000850000613d00000000010000190000150b0001042e150a101e0000040f00000000010000190000150b0001042e000005a20200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b000007300000413d000000c001300039000000800210008a0000008001000039001b00000001001d150a0ff80000040f0000002001000039000000400200043d001a00000002001d00000000021204360000001b01000029150a100b0000040f0000001a0400002900000000014100490000054402000041000005440310009c0000000001028019000005440340009c000000000402801900000040024002100000006001100210000000000121019f0000150b0001042e000000400200043d0000001f0430018f00000005053002720000075b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007530000413d000000000604004b000007840000c13d000007910000013d000000400200043d0000001f0430018f00000005053002720000076b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007630000413d000000000604004b000007910000613d000007840000013d000001000500008a000000000454016f000001c00040043f000000000303004b00000020040000390000000004006019000007a10000013d000000400200043d0000001f0430018f0000000505300272000007820000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000077a0000413d000000000604004b000007910000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000121019f0000150c00010430000005a5050000410000000004000019000000000605041a000001c007400039000000000067043500000001055000390000002004400039000000000634004b0000079a0000413d0000003f03400039000000200400008a000000000343016f000005a60430009c000007ac0000a13d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c00010430000001a003300039000000400030043f000001800020043f000000db05000039000000000205041a0000054602200198000007c00000c13d0000001b02000029000000a403200039000000000231034f000000000202043b000005a70420009c000007f80000a13d000000400100043d0000004402100039000005d403000041000000000032043500000024021000390000001f030000390000010e0000013d001000000005001d00120000000f001d00130000000e001d00140000000d001d00150000000c001d00160000000b001d00180000000a001d001700000009001d001100000008001d000001400100043d000f00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000201043b0000000f0120006c00000c730000813d0000000201000367000001200300043d000000000232004b000008320000a13d0000001b020000290000004402200039000000000221034f000000000202043b000000c00300043d000000000223004b00000011080000290000001709000029000000180a000029000000160b000029000000150c000029000000140d000029000000130e000029000000120f0000290000001005000029000007b30000613d000000400100043d0000006402100039000005b50300004100000000003204350000004402100039000005b603000041000000000032043500000024021000390000002403000039000001c70000013d001000000005001d00120000000f001d00130000000e001d00140000000d001d00150000000c001d00160000000b001d00180000000a001d001700000009001d001100000008001d0000002004300039000000000341034f000000000303043b000005a70530009c0000080d0000a13d000000400100043d0000004402100039000005d303000041000000000032043500000024021000390000001d030000390000010e0000013d0000002005400039000000000451034f000000000404043b000005a80640009c000008240000a13d000000400100043d0000004402100039000005d2030000410000000000320435000005490200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000001130000013d000000400100043d00000044021000390000058e030000410000000000320435000000240210003900000014030000390000010e0000013d000000e00650008a000000000561034f000000000505043b000005460750009c000000850000213d000000000705004b0000089e0000c13d000000400100043d0000004402100039000005d1030000410000000000320435000000240210003900000017030000390000010e0000013d00000011080000290000001709000029000000180a000029000000160b000029000000150c000029000000140d000029000000130e000029000000120f0000290000001005000029000007b30000013d000000400500043d00000044025000390000001503000029000000000032043500000014020000290000054602200197000000240350003900000000002304350000058002000041000000000025043500000084025000390000001b060000290000000000620435000000040250003900000000001204350000001f0460018f001300000005001d000000a4035000390000001a0100002900000020051000390000000201000367000000000551034f00000005066002720000085d0000613d000000000700001900000005087002100000000009830019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000008550000413d000000000704004b0000086c0000613d0000000506600210000000000565034f00000000066300190000000304400210000000000706043300000000074701cf000000000747022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000474019f00000000004604350000001b04000029000000000343001900000000000304350000001f03400039000000200400008a000000000343016f00000013040000290000006404400039000000a00530003900000000005404350000000003320019000000a0023000390000001804000029000000000042043500000017040000290000001f0240018f0000000504400272000008890000613d0000001601100360000000c005300039000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000746004b000008810000413d000000000102004b0000088b0000613d00000000010004140000000002000410000000040420008c000008ff0000c13d0000000103000031000000200130008c00000000040300190000002004008039000009370000013d000000400100043d00000064021000390000058f03000041000000000032043500000044021000390000059003000041000000000032043500000024021000390000002103000039000001c70000013d0000004007600039000000000671034f000000000606043b000000000806004b0000094e0000c13d000000400100043d0000004402100039000005d003000041000007130000013d000000400500043d000000440250003900000015030000290000000000320435000000120200002900000546022001970000002403500039000000000023043500000580020000410000000000250435000000840250003900000019060000290000000000620435000000040250003900000000001204350000001f0460018f001100000005001d000000a403500039000000180100002900000020051000390000000201000367000000000551034f0000000506600272000008c80000613d000000000700001900000005087002100000000009830019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000008c00000413d000000000704004b000008d70000613d0000000506600210000000000565034f00000000066300190000000304400210000000000706043300000000074701cf000000000747022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000474019f00000000004604350000001904000029000000000343001900000000000304350000001f03400039000000200400008a000000000343016f00000011040000290000006404400039000000a00530003900000000005404350000000003320019000000a0023000390000001604000029000000000042043500000014040000290000001f0240018f0000000504400272000008f40000613d0000001301100360000000c005300039000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000746004b000008ec0000413d000000000102004b000008f60000613d00000000010004140000000002000410000000040420008c000009570000c13d0000000103000031000000200130008c000000000403001900000020040080390000098f0000013d0000001306000029000000170460006900000000033400190000054404000041000005440560009c000000000504001900000000050640190000004005500210000000c003300039000005440630009c00000000030480190000006003300210000000000353019f000005440510009c0000000001048019000000c001100210000000000131019f150a15050000040f000000130a000029000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000009240000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000091c0000413d000000000705004b000009330000613d0000000506600210000000000761034f00000013066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000009a80000613d0000001f01400039000000600210018f0000001301200029000000000221004b000000000200001900000001020040390000057d0410009c000007a60000213d0000000102200190000007a60000c13d000000400010043f000000200230008c000000850000413d00000013020000290000000002020433000000000302004b0000000003000019000000010300c039000000000332004b000000850000c13d000000000202004b000005af0000c13d000009a50000013d0000002008700039000000000781034f000000000707043b000000000907004b000009bf0000c13d000000400100043d0000004402100039000005cf03000041000007130000013d0000001106000029000000140460006900000000033400190000054404000041000005440560009c000000000504001900000000050640190000004005500210000000c003300039000005440630009c00000000030480190000006003300210000000000353019f000005440510009c0000000001048019000000c001100210000000000131019f150a15050000040f000000110a000029000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000097c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000009740000413d000000000705004b0000098b0000613d0000000506600210000000000761034f00000011066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000009c80000613d0000001f01400039000000600210018f0000001101200029000000000221004b000000000200001900000001020040390000057d0410009c000007a60000213d0000000102200190000007a60000c13d000000400010043f000000200230008c000000850000413d00000011020000290000000002020433000000000302004b0000000003000019000000010300c039000000000332004b000000850000c13d000000000202004b0000016e0000c13d00000044021000390000058103000041000009c40000013d000000400200043d0000001f0430018f0000000505300272000009b50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000009ad0000413d000000000604004b000007910000613d000007840000013d000000400100043d000000440210003900000591030000410000000000320435000000240210003900000018030000390000010e0000013d000000000967004b000009df0000a13d000000400100043d0000004402100039000005ce030000410000000000320435000000240210003900000019030000390000010e0000013d000000400200043d0000001f0430018f0000000505300272000009d50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000009cd0000413d000000000604004b000007910000613d000007840000013d000000400100043d00000044021000390000059203000041000000000032043500000024021000390000000e030000390000010e0000013d0000002008800039000000000981034f000000000909043b000000000a79004b000009ef0000a13d000000400100043d0000004402100039000005cd03000041000008090000013d000000400100043d000000440210003900000593030000410000000000320435000000240210003900000016030000390000010e0000013d000000000a240019000000000a3a004b00000a5e0000813d000000650a000039000000000a0a041a000005460aa00197000000000b000411000000000aba004b00000a680000c13d000000170b000029000000000a0b041a000005aa0aa0019700000000055a019f00000000005b041b000000600580008a000000000551034f000000000505043b000000180a00002900000000005a041b0000001605000029000000000065041b0000001505000029000000000075041b0000001405000029000000000095041b0000001305000029000000000025041b0000001202000029000000000032041b0000001902000029000000000042041b0000008002800039000000000221034f0000001a03000029000000230330008a000000000202043b000005a404300197000005a405000041000000000332004b00000000030000190000000003054019000005a406200197000000000746004b000000000500a019000000000446013f000005a40440009c000000000503c019000000000305004b000000850000613d0000001b032000290000000402300039000000000221034f000000000202043b0000057d0420009c000000850000213d00000000052000790000002404300039000005a406000041000000000754004b00000000070000190000000007062019000005a405500197000005a408400197000000000958004b0000000006008019000000000558013f000005a40550009c000000000607c019000000000506004b000000850000c13d0000001105000029000000000605041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f00000001066001900000039d0000c13d000000200650008c00000a540000413d0000001f062000390000000506600270000005a507600041000005a506000041000000200820008c0000000006078019000000110700002900000000007004350000001f055000390000000505500270000005a505500041000000000756004b00000a540000813d000000000006041b0000000106600039000000000756004b00000a500000413d0000001f0520008c00000b820000a13d00000011050000290000000000500435000000200500008a000000000652017000000bc30000c13d0000002404000039000005a50500004100000bcf0000013d000000400100043d0000006402100039000005b90300004100000000003204350000004402100039000005ba03000041000000000032043500000024021000390000002b03000039000001c70000013d000000400100043d0000004402100039000005a903000041000008150000013d000000db03000039000000000303041a000000140330014f0000054603300197000005464220012900000000322300d90000001a0110006a000000000121004b00000a7d0000a13d000000cc01000039000000000101041a000005970210019800000a810000c13d000000400100043d00000044021000390000059a03000041000009bb0000013d000000400100043d000000440210003900000596030000410000010b0000013d0000000102000039000000000302041a000000020330008c00000aad0000c13d000000400100043d00000044021000390000059903000041000007bc0000013d00000000010004150000001d0110008a000e000500100218001d00000000001d000005af0100004100000000001004390000000001000410000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000101004b00000af70000c13d0000001001000029000000ff0110018f000000010110008c000000000100001900000001010060390000000e020000290000000502200270000000000201001f00000afa0000c13d0000000d0100006b000004240000613d000001000100008a000000100110017f00000001011001bf000004270000013d0000000203000039000000000032041b0000054601100197150a10340000040f000000000400041600000000321400a9001a00000004001d000000000304004b00000ab90000613d0000001a432000fa000000000113004b00000bf10000c13d000005982120012a001800000001001d00000019020000290000001b03000029150a120d0000040f000005850100004100000000001004390000000001000412001b00000001001d0000000400100443000000240000044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b000000000200001900000b600000c13d000000ce01000039000000000101041a0000054601100197001b00000002001d0000001a02200069150a147c0000040f000000400100043d00000040021000390000001b03000029000000000032043500000020021000390000001a0300002900000000003204350000001802000029000000000021043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f00000587011001c70000800d020000390000000303000039000005880400004100000014050000290000000006000019150a15000000040f0000000101200190000000850000613d0000000101000039000000000011041b00000000010000190000150b0001042e0000000e010000290000000501100270000000000100001f000000400100043d0000006402100039000005b00300004100000000003204350000004402100039000005b103000041000000000032043500000024021000390000002e03000039000001c70000013d0000000101000039000000000201041a000000020220008c00000a850000613d0000000202000039000000000021041b0000001b0100002900000000001004350000001801000029000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000400200043d000005840320009c000007a60000213d000000000101043b0000004003200039000000400030043f000000000101041a00000546031001970000000004320436000000a001100270000000ff0210018f00000000002404350000001a01000029150a11290000040f001800000001001d00000017020000290000001903000029150a120d0000040f000005850100004100000000001004390000000001000412001900000001001d0000000400100443000000240000044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b000000000200001900000c7a0000c13d001900000002001d0000001a0420006900000000030004100000001b010000290000001202000029150a12bd0000040f000000400100043d00000040021000390000001903000029000000000032043500000020021000390000001a0300002900000000003204350000001802000029000000000021043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f00000587011001c70000800d020000390000000303000039000005880400004100000012050000290000001b06000029150a15000000040f0000000101200190000000850000613d00000af30000013d0019001a201000bd0000001a0200006b00000b670000613d00000019030000290000001a323000fa000000000112004b00000bf10000c13d000005850100004100000000001004390000001b0100002900000004001004430000002001000039000000240010044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001902000029000027103220011a001b00000002001d0000054601100197150a147c0000040f0000001b0300002900000000020300190000001a0130006c00000ad20000a13d00000bf10000013d000000000302004b000000000300001900000b870000613d000000000141034f000000000301043b0000000301200210000000010400008a000000000114022f000000000141013f000000000113016f0000000102200210000000000121019f00000bdd0000013d000001000700008a000000000676016f0000000000650435000000000404004b000000200600003900000000060060190000003f046000390003002000000092000000030540017f0000000004350019000000000554004b000000000500001900000001050040390000057d0640009c000007a60000213d0000000105500190000007a60000c13d000000400040043f00000100011000390000000000310435000000db01000039000200000001001d000000000101041a000005460110019800000c530000c13d00000002020003670000002401200370000000000101043b000000a401100039000000000312034f000000000303043b000005b70430009c000007b90000813d0000002001100039000000000412034f000000000404043b000005b70540009c000008060000813d0000002001100039000000000512034f000000000505043b000005b80650009c000008120000813d000000e00610008a000000000162034f000000000701043b000005460170009c000000850000213d000000400100043d000000000707004b00000cb80000c13d0000082c0000013d000005a505000041000000000800001900000000070800190000000008470019000000000881034f000000000808043b000000000085041b00000001055000390000002008700039000000000968004b00000bc50000413d0000004404700039000000000626004b00000bdb0000813d0000000306200210000000f80660018f000000010700008a000000000667022f000000000676013f0000000003340019000000000131034f000000000101043b000000000161016f000000000015041b000000010120021000000001011001bf0000001102000029000000000012041b0000001801000029000000000101041a001b00000001001d000005ab01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b00000bf70000c13d000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c00010430000005ac020000410000000000200439000000010110008a000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001b0110014f00000546011001970000001003000029000000000203041a000005aa02200197000000000121019f000000000013041b0000002002000039000000400100043d00000000022104360000001703000029000000000303041a000005460330019700000000003204350000001802000029000000000202041a000000400310003900000000002304350000001602000029000000000202041a000000600310003900000000002304350000001502000029000000000202041a000000800310003900000000002304350000001402000029000000000202041a000000a00310003900000000002304350000001302000029000000000202041a000000c00310003900000000002304350000001202000029000000000202041a000000e00310003900000000002304350000001902000029000000000202041a000001200300003900000120041000390000000000340435000001000310003900000000002304350000001102000029000000000402041a000000010540019000000001034002700000007f0230018f000000000203c0190000001f0320008c00000000030000190000000103002039000000000334013f00000001033001900000039d0000c13d000001400310003900000000002304350000016003100039000000000505004b00000c9e0000613d00000011040000290000000000400435000000000402004b000000000400001900000ca40000613d000005a50500004100000000040000190000000006340019000000000705041a000000000076043500000001055000390000002004400039000000000624004b00000c4b0000413d00000ca40000013d0000000001020433000100000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000010210006c00000c730000813d00000002020003670000000e030000290000000003030433000000000131004b00000cb70000a13d0000002401200370000000000101043b0000004401100039000000000112034f000000000101043b0000000c030000290000000003030433000000000113004b000007ee0000c13d00000ba90000013d000000400100043d0000004402100039000005b403000041000000000032043500000024021000390000001a030000390000010e0000013d0017001a201000bd0000001a0200006b00000c810000613d00000017030000290000001a323000fa000000000112004b00000bf10000c13d00000585010000410000000000100439000000190100002900000004001004430000002001000039000000240010044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001702000029000027102420011a001900000004001d00000546031001970000001b010000290000001202000029150a12bd0000040f000000190300002900000000020300190000001a0130006c00000b3e0000a13d00000bf10000013d000001000500008a000000000454016f0000000000430435000000000202004b000000200400003900000000040060190000054402000041000005440310009c000000000102801900000040011002100000016003400039000005440430009c00000000030280190000006003300210000000000113019f0000000003000414000005440430009c0000000003028019000000c002300210000000000121019f0000059e011001c70000800d020000390000000103000039000005ad04000041000007260000013d00000ba90000013d0000004007600039000000000672034f000000000606043b000000000806004b00000cbe0000c13d000008a40000013d0000002008700039000000000782034f000000000707043b000000000907004b00000cc40000c13d000009540000013d000000000667004b00000cc70000a13d000009c20000013d0000002006800039000000000262034f000000000202043b000000000272004b00000ccd0000a13d000009e50000013d0000000002350019000000000242004b00000a5f0000813d000000000200041a0000ff000220019000000cd90000c13d0000006402100039000005cb0300004100000000003204350000004402100039000005cc0300004100000a640000013d000005bb0210009c000007a60000213d0000002402100039000005bc0300004100000000003204350000004402100039000000000300041400000060040000390000000000420435000005bd02000041000000000021043500000064021000390000000000020435000000040210003900000000000204350000054402000041000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f000005be011001c70000800602000039150a15000000040f000000010220019000000cfb0000613d000000000101043b000000000201004b00000d250000c13d0000000301000367000000010200003100000d000000013d000300000001035500000000020100190000006002200270000105440020019d0000054402200197000000400300043d0000001f0420018f000000050520027200000d0d0000613d000000000600001900000005076002100000000008730019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d050000413d000000000604004b00000d1c0000613d0000000505500210000000000151034f00000000055300190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440430009c0000000003018019000005440420009c000000000201801900000060012002100000004002300210000000000112019f0000150c0001043000000546031001970000009701000039000000000201041a000005aa02200197000000000232019f000000000021041b000005af010000410000000000100439000e00000003001d000000040030044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000101004b000000850000613d000000400200043d000005bf01000041000c00000002001d0000000001120436000100000001001d00000000010004140000000e02000029000000040220008c00000d580000613d0000054402000041000005440310009c00000000010280190000000c04000029000005440340009c00000000020440190000004002200210000000c001100210000000000121019f000005c0011001c70000000e02000029150a15000000040f00000000030100190000006003300270000105440030019d00000544033001970003000000010355000000010220019000000d6d0000613d0000000c010000290000057d0110009c000007a60000213d0000000c01000029000000400010043f0000001302000029000000160120006b00000d7d0000c13d0000001102000029000000160120006b00000d840000c13d0000001701000029000005460110019800000d960000c13d0000000c030000290000004401300039000005ca0200004100000000002104350000002401300039000000120200003900000d8a0000013d000000400200043d0000001f0430018f000000050530027200000d7a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d720000413d000000000604004b000007910000613d000007840000013d0000000c030000290000004401300039000005c102000041000000000021043500000024013000390000001b0200003900000d8a0000013d0000000c030000290000004401300039000005c202000041000000000021043500000024013000390000001d020000390000000000210435000005490100004100000000001304350000000401300039000000200200003900000000002104350000054401000041000005440230009c0000000003018019000000400130021000000550011001c70000150c0001043000000002020003670000002403200370000000000303043b0000000404300039000000000542034f000000000505043b000005460650009c000000850000213d0000000a07000029000000000607041a000005aa06600197000000000556019f000000000057041b0000002005400039000000000552034f000000000505043b0000000b06000029000000000056041b0000004005400039000000000552034f000000000505043b0000000906000029000000000056041b0000006005400039000000000552034f000000000505043b0000000806000029000000000056041b0000008005400039000000000552034f000000000505043b0000000706000029000000000056041b000000a005400039000000000552034f000000000505043b0000000606000029000000000056041b000000c005400039000000000552034f000000000505043b0000000506000029000000000056041b000000e005400039000000000552034f000000000505043b0000000406000029000000000056041b0000010004400039000000000442034f000000000404043b00000000050000310000000006350049000000230660008a000005a407000041000000000864004b00000000080000190000000008078019000005a406600197000005a409400197000000000a69004b0000000007008019000000000669013f000005a40660009c000000000708c019000000000607004b000000850000c13d00000000033400190000000404300039000000000442034f000000000404043b0000057d0640009c000000850000213d00000000054500490000002403300039000005a406000041000000000753004b00000000070000190000000007062019000005a405500197000005a408300197000000000958004b0000000006008019000000000558013f000005a40550009c000000000607c019000000000506004b000000850000c13d0000001005000029000000000605041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f00000001066001900000039d0000c13d000000200650008c00000e0d0000413d0000001f064000390000000506600270000005a507600041000005a506000041000000200840008c0000000006078019000000100700002900000000007004350000001f055000390000000505500270000005a505500041000000000756004b00000e0d0000813d000000000006041b0000000106600039000000000756004b00000e090000413d0000001f0540008c0000000105400210000000030640021000000e180000a13d00000010070000290000000000700435000000030840018000000e230000c13d000005a507000041000000000900001900000e2d0000013d000000000404004b000000000400001900000e1d0000613d000000000332034f000000000403043b000000010300008a000000000663022f000000000336013f000000000334016f000000000353019f00000e390000013d000005a5070000410000000009000019000000000a390019000000000aa2034f000000000a0a043b0000000000a7041b00000001077000390000002009900039000000000a89004b00000e250000413d000000000448004b00000e380000813d000000f80460018f000000010600008a000000000446022f000000000464013f0000000003390019000000000332034f000000000303043b000000000343016f000000000037041b00000001035001bf0000001004000029000000000034041b000000cb03000039000000000503041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f00000001055001900000039d0000c13d000000200540008c00000e5a0000413d0000001a070000290000001f057000390000000505500270000005a206500041000005a205000041000000200770008c000000000506801900000000003004350000001f044000390000000504400270000005a204400041000000000645004b00000e5a0000813d000000000005041b0000000105500039000000000645004b00000e560000413d0000001a050000290000001f0450008c0000000104500210000000030550021000000e660000a13d000000000030043500000003070000290000001a0770018000000e710000c13d000005a206000041000000000800001900000e7b0000013d0000001a0600006b000000000600001900000e6b0000613d0000001902200360000000000602043b000000010200008a000000000552022f000000000225013f000000000226016f000000000242019f00000e870000013d000005a20600004100000000080000190000001909800029000000000992034f000000000909043b000000000096041b00000001066000390000002008800039000000000978004b00000e730000413d0000001a0770006c00000e860000813d000000f80550018f000000010700008a000000000557022f000000000575013f0000001907800029000000000272034f000000000202043b000000000252016f000000000026041b00000001024001bf000000000023041b000005c304000041000000180500006b0000000004006019000000cc05000039000000000605041a000005c406600197000000000464019f000000000414019f000000000045041b00000015040000290000000c0700002900000000004704350000000a04000029000000000404041a0000054604400197000000800570003900000000004504350000000b04000029000000000404041a000000a00570003900000000004504350000000904000029000000000404041a000000c00570003900000000004504350000000804000029000000000404041a000000e00570003900000000004504350000000704000029000000000404041a000001000570003900000000004504350000000604000029000000000404041a000001200570003900000000004504350000000504000029000000000404041a000001400570003900000000004504350000000404000029000000000404041a000001800570003900000120060000390000000000650435000001600570003900000000004504350000001004000029000000000504041a000000010750019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000665013f00000001066001900000039d0000c13d0000000c08000029000001a0068000390000000000460435000001c006800039000000000707004b00000ed90000613d00000010050000290000000000500435000000000504004b000000000700001900000edf0000613d000005a50500004100000000070000190000000008670019000000000905041a000000000098043500000001055000390000002007700039000000000847004b00000ed10000413d00000edf0000013d000001000700008a000000000575016f0000000000560435000000000404004b00000020070000390000000007006019000000010820019000000001042002700000007f0540018f000000000504c01900000000066700190000000c0460006a000000010700002900000000004704350000001f0750008c00000000070000190000000107002039000000000772013f00000001077001900000039d0000c13d0000000006560436000000000708004b00000efe0000613d0000000000300435000000000205004b000000000200001900000f040000613d000005a20300004100000000020000190000000007260019000000000803041a000000000087043500000001033000390000002002200039000000000752004b00000ef60000413d00000f040000013d000001000300008a000000000232016f0000000000260435000000000205004b000000200200003900000000020060190000000c060000290000006003600039000000180500002900000000005304350000004003600039000000000013043500000000012400190000054402000041000005440360009c000000000602801900000040036002100000002001100039000005440410009c00000000010280190000006001100210000000000131019f0000000003000414000005440430009c0000000003028019000000c002300210000000000112019f0000059e011001c70000800d020000390000000103000039001300000003001d000005c504000041150a15000000040f0000000101200190000000850000613d000000160100006b00000f910000613d001a00000000001d0000001a010000290000000502100210001800140020002d00000002030003670000001801300360000000000101043b000005460410009c000000850000213d000000000401004b00000fe20000613d0000001204200029000000000443034f000000000404043b000005460540009c000000850000213d000000000504004b00000fe90000613d0000000f02200029000000000223034f000000000202043b000000ff0320008c000000850000213d000000400300043d001900000003001d000005840330009c000007a60000213d00000019050000290000004003500039000000400030043f0000000003450436001500000003001d00000000002304350000000000100435000000cd01000039001700000001001d000000200010043f0000000001000414000005440210009c0000054401008041000000c00110021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000190200002900000000020204330000054602200197000000000101043b000000000301041a000005c403300197000000000223019f00000015030000290000000003030433000000a0033002100000059703300197000000000232019f000000000021041b00000018010000290000000201100367000000000101043b001900000001001d000005460110009c000000850000213d000000190100002900000000001004350000001701000029000000200010043f0000000001000414000005440210009c0000054401008041000000c00110021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000000101043b000000400200043d00000019030000290000000003320436000000000101041a00000546041001970000000000430435000000a001100270000000ff0110018f00000040032000390000000000130435000005440120009c000005440400004100000000020480190000000001000414000005440310009c00000000010480190000004002200210000000c001100210000000000121019f00000587011001c70000800d020000390000000103000039000005c604000041150a15000000040f0000000101200190000000850000613d0000001a020000290000000102200039001a00000002001d000000160120006c00000f240000413d0000000b01000029000000000101041a001a00000001001d000005ab01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b00000bf10000613d000005ac020000410000000000200439000000010110008a000000040010044300000544030000410000000001000414000005440210009c0000000001038019000000c0011002100000059d011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001a0110014f00000546011001970000000203000029000000000203041a000005aa02200197000000000112019f000000000013041b0000001b0100002900000546061001970000006501000039000000000201041a000005aa03200197000000000363019f000000000031041b0000000001000414000005440310009c0000054401008041000000c0011002100000059e011001c700000546052001970000800d020000390000000303000039000005ae04000041150a15000000040f0000000101200190000000850000613d0000000d0100006b000007290000c13d000000000200041a000005c901200197000000000010041b000000400100043d0000001303000029000000000031043500000544020000410000000005000414000005440450009c0000000005028019000005440410009c00000000010280190000004001100210000000c002500210000000000112019f0000054b011001c70000800d020000390000054c04000041000007260000013d000000000001042f000000400100043d0000004402100039000005c8030000410000000000320435000000240210003900000012030000390000010e0000013d000000400100043d0000004402100039000005c7030000410000010b0000013d000005e00210009c00000ff20000813d0000004001100039000000400010043f000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b000000000200001900000001020040390000057d0310009c000010050000213d0000000102200190000010050000c13d000000400010043f000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c0001043000000000430104340000000001320436000000000203004b000010170000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000532004b000010100000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000546061001970000006501000039000000000201041a000005aa03200197000000000363019f000000000031041b00000544010000410000000003000414000005440430009c0000000003018019000000c0013002100000059e011001c700000546052001970000800d020000390000000303000039000005ae04000041150a15000000040f0000000101200190000010320000613d000000000001042d00000000010000190000150c000104300002000000000002000000400a00043d000005e10200004100000000062a043600000000030004140000054602100197000000040120008c000010410000c13d0000000103000031000000a00130008c0000000004030019000000a004008039000010740000013d000100000006001d0000054401000041000005440430009c00000000030180190000054404a0009c00000000010a40190000004001100210000000c003300210000000000113019f000005c0011001c700020000000a001d150a15050000040f000000020a000029000000000301001900000060033002700000054403300197000000a00430008c0000000004030019000000a0040080390000001f0540018f0000000506400272000010600000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000010580000413d000000000705004b0000106f0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000010c70000613d00000001060000290000001f01400039000001e00110018f0000000002a10019000000000112004b000000000100001900000001010040390000057d0420009c000010a10000213d0000000101100190000010a10000c13d000000400020043f0000009f0130008c0000109f0000a13d00000000030a0433000005e20130009c0000109f0000213d0000006001a00039000000000501043300000000010604330000008004a000390000000004040433000005e20640009c0000109f0000213d000005a406000041000000000701004b00000000070000190000000007064019000005a408100197000000000908004b000000000600a019000005a40880009c000000000607c019000000000606004b000010a70000c13d000000000601004b000010a70000613d000000000604004b000010ad0000613d000000000505004b000010b00000613d000000000334004b000010b60000413d000000000001042d00000000010000190000150c00010430000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c000104300000004401200039000005e603000041000000000031043500000024012000390000000e03000039000010bb0000013d0000004401200039000005e503000041000010b80000013d0000004401200039000005e403000041000000000031043500000024012000390000001203000039000010bb0000013d0000004401200039000005e303000041000000000031043500000024012000390000000b030000390000000000310435000005490100004100000000001204350000000401200039000000200300003900000000003104350000054401000041000005440320009c0000000002018019000000400120021000000550011001c70000150c00010430000000400200043d0000001f0430018f0000000505300272000010d40000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000010cc0000413d000000000604004b000010e30000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000121019f0000150c000104300001000000000002000100000001001d000005ab01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f00000001022001900000110d0000613d000000000101043b000000000201004b0000110e0000613d000005ac020000410000000000200439000000010110008a000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800b02000039150a15050000040f00000001022001900000110d0000613d000000000101043b000000010110014f0000054601100197000000000001042d000000000001042f000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c00010430000000d502000039000000000202041a000000000302004b000011210000613d0000054602200198000011230000613d000000db03000039000000000303041a000000000113013f0000054601100197000005463220012900000000212100d9000000000001042d0000000001000019000000000001042d000005940100004100000000001004350000001201000039000000040010043f00000595010000410000150c000104300004000000000002000000000a020019000000000b010019000000400c00043d000005e10100004100000000061c043600000000010004140000054602300197000000040320008c000011380000c13d0000000103000031000000a00130008c0000000004030019000000a0040080390000116f0000013d000100000006001d00030000000b001d00040000000a001d0000054403000041000005440410009c00000000010380190000054404c0009c00000000030c40190000004003300210000000c001100210000000000131019f000005c0011001c700020000000c001d150a15050000040f000000020c000029000000000301001900000060033002700000054403300197000000a00430008c0000000004030019000000a0040080390000001f0540018f0000000506400272000011590000613d0000000007000019000000050870021000000000098c0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000011510000413d000000000705004b000011680000613d0000000506600210000000000761034f00000000066c00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000000040a000029000000030b000029000011ea0000613d00000001060000290000001f01400039000001e00210018f0000000001c20019000000000221004b000000000200001900000001020040390000057d0410009c000011be0000213d0000000102200190000011be0000c13d000000400010043f0000009f0230008c000011bc0000a13d00000000030c0433000005e20230009c000011bc0000213d0000006002c00039000000000502043300000000020604330000008004c000390000000004040433000005e20640009c000011bc0000213d000005a406000041000000000702004b00000000070000190000000007064019000005a408200197000000000908004b000000000600a019000005a40880009c000000000607c019000000000606004b000011c40000c13d000000000602004b000011c40000613d000000000604004b000011ca0000613d000000000505004b000011cd0000613d000000000334004b000011d30000413d0000000031b200a900000000030b004b000011b10000613d0000000043b100d9000000000223004b000011b30000c13d0000004e02a0008c000011b30000813d00000000020a004b000011b90000613d0000000a0300003900000001020000390000000104a001900000000004030019000000010400603900000000422400a90000000104a0008c000000010aa0027000000000433300a9000011a50000213d000000000302004b000011e40000613d00000000212100d9000000000001042d0000004d02a0008c000011a10000a13d000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c00010430000000010200003900000000212100d9000000000001042d00000000010000190000150c00010430000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c000104300000004402100039000005e603000041000000000032043500000024021000390000000e03000039000011d80000013d0000004402100039000005e503000041000011d50000013d0000004402100039000005e403000041000000000032043500000024021000390000001203000039000011d80000013d0000004402100039000005e303000041000000000032043500000024021000390000000b030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000005940100004100000000001004350000001201000039000000040010043f00000595010000410000150c00010430000000400200043d0000001f0430018f0000000505300272000011f70000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000011ef0000413d000000000604004b000012060000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000121019f0000150c000104300007000000000002000700000001001d000000000103004b0000121d0000613d0000000201000367000000000421034f000000000404043b000005e704400197000005e80440009c000012a40000c13d000000210330008c000012ab0000c13d0000000102200039000000000121034f000000000101043b0000121f0000013d000000d101000039000000000101041a000400000001001d0000000001000411000600000001001d0000000000100435000000da01000039000500000001001d000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000012900000613d000000000101043b000000000201041a0000000701200029000000000221004b00000000020000190000000102004039000000010220008c0000128a0000613d000000040110006c000012920000213d000000d904000039000000000604041a0000000705600029000000000165004b0000000001000019000000010100403900000001011001900000128a0000c13d000000d001000039000000000101041a000000000115004b000012960000213d000000d201000039000000000101041a000000070110006c0000129d0000213d000000d701000039000000000201041a0001000100000092000000010320006c0000128a0000613d000200000006001d000300000005001d000400000004001d0000000102200039000000000021041b000000060100002900000000001004350000000501000029000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000012900000613d000000000101043b000000000101041a000000000101004b0000000404000029000000030500002900000002060000290000126f0000c13d000000d801000039000000000201041a000000010320006c0000128a0000613d0000000102200039000000000021041b000000000165004b0000128a0000413d000000000054041b000000060100002900000000001004350000000501000029000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000012900000613d000000000101043b000000000301041a0000000702300029000000000332004b0000000003000019000000010300403900000001033001900000128a0000c13d000000000021041b000000000001042d000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c0001043000000000010000190000150c00010430000000400100043d0000004402100039000005ed03000041000012990000013d000000400100043d0000004402100039000005ec03000041000000000032043500000024021000390000001b03000039000012b10000013d000000400100043d0000004402100039000005eb03000041000000000032043500000024021000390000001603000039000012b10000013d000000400100043d0000004402100039000005e903000041000000000032043500000024021000390000000c03000039000012b10000013d000000400100043d0000004402100039000005ea030000410000000000320435000000240210003900000017030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c000104300005000000000002000000400600043d000000640560003900000000004504350000054603300197000000440460003900000000003404350000002004600039000005ee03000041000300000004001d000000000034043500000546022001970000002403600039000000000023043500000064020000390000000000260435000005ef0260009c000013560000813d0000054603100197000000a002600039000000400020043f000005f00160009c000013560000213d000000e001600039000000400010043f0000002001000039000200000001001d000100000002001d0000000000120435000400000006001d000000c001600039000005f1020000410000000000210435000005af010000410000000000100439000500000003001d000000040030044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f00000001022001900000135e0000613d000000000101043b000000000101004b0000135f0000613d0000000401000029000000000601043300000000010004140000000502000029000000040320008c000013260000c13d00000001020000390000000104000031000000000104004b0000133b0000613d0000001f01400039000000200300008a000000000131016f0000003f01100039000000000131016f000000400300043d0000000001130019000000000531004b000000000500001900000001050040390000057d0610009c000013560000213d0000000105500190000013560000c13d000000400010043f0000001f0540018f000000000143043600000003060003670000000504400272000013160000613d000000000700001900000005087002100000000009810019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b0000130e0000413d000000000705004b0000133d0000613d0000000504400210000000000646034f00000000044100190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000133d0000013d00000544030000410000000305000029000005440450009c00000000050380190000004004500210000005440560009c00000000060380190000006005600210000000000545019f000005440410009c0000000001038019000000c001100210000000000115019f150a15000000040f000000010220018f00030000000103550000006001100270000105440010019d0000054404100197000000000104004b000012f90000c13d000000600300003900000080010000390000000003030433000000000202004b000013710000613d000000000203004b000013550000613d000005a4020000410000001f0430008c00000000040000190000000004022019000005a403300197000000000503004b0000000002008019000005a40330009c000000000204c019000000000202004b0000135c0000613d0000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000135c0000c13d000000000101004b000013880000613d000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c0001043000000000010000190000150c00010430000000000001042f000000400100043d0000004402100039000005f403000041000000000032043500000024021000390000001d030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000000000203004b0000139d0000c13d000000400300043d000500000003001d0000054901000041000000000013043500000004013000390000000202000029000000000021043500000024023000390000000101000029150a100b0000040f000000050400002900000000014100490000054402000041000005440310009c0000000001028019000005440340009c000000000402801900000040024002100000006001100210000000000121019f0000150c00010430000000400100043d0000006402100039000005f20300004100000000003204350000004402100039000005f303000041000000000032043500000024021000390000002a030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c000000000102801900000040011002100000054a011001c70000150c000104300000054402000041000005440430009c0000000003028019000005440410009c000000000102801900000040011002100000006002300210000000000112019f0000150c000104300004000000000002000400000002001d0000054604100197000000400300043d000005e00130009c0000142c0000813d0000004001300039000000400010043f0000002001300039000005f10200004100000000002104350000002001000039000200000001001d000100000003001d0000000000130435000005af010000410000000000100439000300000004001d000000040040044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f0000000102200190000014340000613d000000000101043b000000000101004b000014350000613d0000000401000029000000006301043400000000010004140000000302000029000000040420008c000013fd0000c13d00000001020000390000000104000031000000000104004b000014110000613d0000001f01400039000000200300008a000000000131016f0000003f01100039000000000131016f000000400300043d0000000001130019000000000531004b000000000500001900000001050040390000057d0610009c0000142c0000213d00000001055001900000142c0000c13d000000400010043f0000001f0540018f000000000143043600000003060003670000000504400272000013ed0000613d000000000700001900000005087002100000000009810019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000013e50000413d000000000705004b000014130000613d0000000504400210000000000646034f00000000044100190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000014130000013d0000054404000041000005440530009c00000000030480190000006003300210000005440560009c00000000060480190000004005600210000000000553019f000005440310009c0000000001048019000000c001100210000000000115019f150a15000000040f000000010220018f00030000000103550000006001100270000105440010019d0000054404100197000000000104004b000013d00000c13d000000600300003900000080010000390000000003030433000000000202004b000014470000613d000000000203004b0000142b0000613d000005a4020000410000001f0430008c00000000040000190000000004022019000005a403300197000000000503004b0000000002008019000005a40330009c000000000204c019000000000202004b000014320000613d0000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000014320000c13d000000000101004b0000145e0000613d000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c0001043000000000010000190000150c00010430000000000001042f000000400100043d0000004402100039000005f403000041000000000032043500000024021000390000001d030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000000000203004b000014730000c13d000000400300043d000400000003001d0000054901000041000000000013043500000004013000390000000202000029000000000021043500000024023000390000000101000029150a100b0000040f000000040400002900000000014100490000054402000041000005440310009c0000000001028019000005440340009c000000000402801900000040024002100000006001100210000000000121019f0000150c00010430000000400100043d0000006402100039000005f20300004100000000003204350000004402100039000005f303000041000000000032043500000024021000390000002a030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c000000000102801900000040011002100000054a011001c70000150c000104300000054402000041000005440430009c0000000003028019000005440410009c000000000102801900000040011002100000006002300210000000000112019f0000150c000104300003000000000002000100000002001d000200000001001d0000009701000039000000000101041a000005af0200004100000000002004390000054601100197000300000001001d000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f0000000102200190000014bd0000613d000000000101043b000000000101004b000014be0000613d000000400500043d000005f5010000410000000000150435000000020100002900000546011001970000000402500039000000000012043500000000010004140000000304000029000000040240008c000014b90000613d0000054402000041000005440310009c0000000001028019000005440350009c000200000005001d00000000020540190000004002200210000000c001100210000000000121019f0000000103000029000000000203004b000014ae0000613d000005f6011001c700008009020000390000000005000019000014b00000013d00000595011001c70000000002040019150a15000000040f000300000001035500000000030100190000006003300270000105440030019d000005440330019700000001022001900000000205000029000014c60000613d000005f70150009c000014c00000813d000000400050043f000000000001042d000000000001042f00000000010000190000150c00010430000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c00010430000000400200043d0000001f0430018f0000000505300272000014d30000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000014cb0000413d000000000604004b000014e20000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000112019f0000150c00010430000000000001042f0000054403000041000005440410009c00000000010380190000004001100210000005440420009c00000000020380190000006002200210000000000112019f0000000002000414000005440420009c0000000002038019000000c002200210000000000112019f0000059e011001c70000801002000039150a15050000040f0000000102200190000014fe0000613d000000000101043b000000000001042d00000000010000190000150c0001043000001503002104210000000102000039000000000001042d0000000002000019000000000001042d00001508002104230000000102000039000000000001042d0000000002000019000000000001042d0000150a000004320000150b0001042e0000150c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff616c697a696e6700000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e69746908c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000200000000000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498dac4fd790edde0c2ab54e0618fa7d2d818b20fe5504b25328f64c7246121e0eb00000002000000000000000000000000000000c0000001000000000000000000666565526563697069656e74203d3d20300000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000008dbc834200000000000000000000000000000000000000000000000000000000cc8f918100000000000000000000000000000000000000000000000000000000e6064de200000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000ffa1ad7400000000000000000000000000000000000000000000000000000000e6064de300000000000000000000000000000000000000000000000000000000ea51764500000000000000000000000000000000000000000000000000000000cc8f918200000000000000000000000000000000000000000000000000000000e2982c2100000000000000000000000000000000000000000000000000000000e49248d500000000000000000000000000000000000000000000000000000000a9e0c9c200000000000000000000000000000000000000000000000000000000b4bd9e2600000000000000000000000000000000000000000000000000000000b4bd9e2700000000000000000000000000000000000000000000000000000000c3b88b4200000000000000000000000000000000000000000000000000000000a9e0c9c300000000000000000000000000000000000000000000000000000000ab803a76000000000000000000000000000000000000000000000000000000008dbc83430000000000000000000000000000000000000000000000000000000092a85fde00000000000000000000000000000000000000000000000000000000a04748f600000000000000000000000000000000000000000000000000000000621aa9240000000000000000000000000000000000000000000000000000000075f620ab00000000000000000000000000000000000000000000000000000000826b90f100000000000000000000000000000000000000000000000000000000826b90f2000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000075f620ac0000000000000000000000000000000000000000000000000000000079502c5500000000000000000000000000000000000000000000000000000000621aa92500000000000000000000000000000000000000000000000000000000669ad09200000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000031ab05170000000000000000000000000000000000000000000000000000000047535d7a0000000000000000000000000000000000000000000000000000000047535d7b000000000000000000000000000000000000000000000000000000004cc233a80000000000000000000000000000000000000000000000000000000031ab05180000000000000000000000000000000000000000000000000000000031b3eb940000000000000000000000000000000000000000000000000000000001c3753f000000000000000000000000000000000000000000000000000000001be19560000000000000000000000000000000000000000000000000000000002ddbd13a322e3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff938b5f3299a1f3b18e458564efbb950733226014eece26fae19012d850b48d83020000020000000000000000000000000000000400000000000000000000000001c3753f00000000000000000000000000000000000000000000000000000000626164206d65726b6c652070726f6f6620666f722073616c6500000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391320200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000020000000000000000000000000000000000006000000000000000000000000000f93dbdb72854b6b6fb35433086556f2635fc83c37080c667496fecfa650fb4696e76616c6964207061796d656e7420746f6b656e000000000000000000000000000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000020000000000000000000000000e3a9db1a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000004d75737420627579207769746820616e20454f41000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064617461206e6f74207065726d6974746564206f6e207075626c69632073616c73616c6520686173206e6f74207374617274656420796574000000000000000073616c652068617320656e64656400000000000000000000000000000000000073616c6520627579206c696d69742072656163686564000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006e6f7420796f7572207475726e207965740000000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400005265656e7472616e637947756172643a207265656e7472616e742063616c6c006e6174697665207061796d656e74732064697361626c6564000000000000000000000000000000000000000000000000000000400000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39020000020000000000000000000000000000002400000000000000000000000002000000000000000000000000000000000000000000000000000000000000005472616e73666572206661696c65642e000000000000000000000000000000003b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd20000000000000000000000000000000000000060000000800000000000000000a7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb00000000000000000000000000000000000000400000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd000000000000000000000000000000000000000000000000fffffffffffffe5f00000000000000000000000000000000000000000000000000000000f48657000000000000000000000000000000000000000000000000000000000000093a804f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ffffffffffffffffffffffff000000000000000000000000000000000000000042cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd180b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3f19e3240beb82d0dfa0a35ed50201f0ac38ea92b9b29450527293aa8ccd0979b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e01806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c726561ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000fffffffffffffedf73616c65206973206f7665723a2063616e6e6f74207570617465000000000000746172740000000000000000000000000000000000000000000000000000000065646974696e672073616c654d6178696d756d2061667465722073616c65207300000000000000000000000000000000000000000000000000000000f48657010000000000000000000000000000000000000000000000000000000000093a816178517565756554696d6500000000000000000000000000000000000000000073616c65206d757374206265206f70656e20666f72206174206c65617374206d000000000000000000000000000000000000000000000000ffffffffffffff7b010000bf8042c7a73f97bf987e5e255a28fcb320c2ced98580994ffc1d20849d9c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd02000000000000000000000000000000000000840000000000000000000000008129fc1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000746f6b656e20616e64206f7261636c65206c656e6774687320213d0000000000746f6b656e20616e6420646563696d616c73206c656e6774687320213d0000000000000000000000000000010000000000000000000000000000000000000000ffffffffffffffffffffff000000000000000000000000000000000000000000b08510a4a112663ff701fcf43686a47fd456cb1a471dd63d662b73612cf700b31573dfedb5172e215558f8ffa409a71a5e42c596c15c482a04ff548914ebfa77746f6b656e206f7261636c65203d3d20300000000000000000000000000000007061796d656e7420746f6b656e203d3d20300000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6e6174697665206f7261636c65203d3d203000000000000000000000000000006e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206970757263686173654d696e696d756d203e20757365724d6178696d756d000000757365724d6178696d756d203e2073616c654d6178696d756d00000000000000757365724d6178696d756d203d3d20300000000000000000000000000000000073616c654d6178696d756d203d3d203000000000000000000000000000000000726563697069656e74203d3d20616464726573732830290000000000000000006d61782071756575652074696d65203e20363034383030202831207765656b29656e64203e203431303234343438303020284a616e20312032313030290000007374617274203e203431303234343438303020284a616e20312032313030290051cff8d90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000008000000000000000000200000000000000000000000000000000000020000000800000000000000000bfbef9c12fc2cf7df9f0b7679d5863e31a093e9c2c8d5dd9de1ddca31a0748284469737472696275746f72203d3d20616464726573732830290000000000000070a0823100000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000f4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d000000000000000000000000000000000000000000000000ffffffffffffff800200000000000000000000000000000000000000000000a000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffffc0feaf968c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff7374616c65207072696365000000000000000000000000000000000000000000726f756e64206e6f7420636f6d706c6574650000000000000000000000000000616e73776572203d3d20300000000000000000000000000000000000000000006e65676174697665207072696365000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000756e6b6e6f776e2064617461000000000000000000000000000000000000000064617461206c656e67746820213d203333206279746573000000000000000000707572636861736520756e646572206d696e696d756d00000000000000000000707572636861736520657863656564732073616c65206c696d697400000000007075726368617365206578636565647320796f7572206c696d6974000000000023b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff60000000000000000000000000000000000000000000000000ffffffffffffff1f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000f340fa0100000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000007c4bd3c54158dedf547ede1ccbf5e5476137795e975b408b576a380bdd3cee6e", + "entries": [ + { + "constructorArgs": [ + 0, + "0x0000000000000000000000000000000000000000" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [ + "0x0002000000000002000500000000000200000000030100190000006003300270000000900330019700010000003103550000008004000039000000400040043f0000000102200190000000280000c13d000000040230008c000000ff0000413d000000000201043b000000e002200270000000920420009c000000300000a13d000000930420009c000000540000213d000000960420009c000000d20000613d000000970220009c000000ff0000c13d0000000002000416000000240330008c000000ff0000413d000000000202004b000000ff0000c13d0000000401100370000000000101043b0000009b0210009c000000ff0000213d00000000001004350000006501000039000000200010043f0000000001000019023a021e0000040f000000000101041a000000800010043f000000a5010000410000023b0001042e0000000001000416000000000101004b000000ff0000c13d00000020010000390000010000100443000001200000044300000091010000410000023b0001042e000000980420009c000000830000613d000000990120009c000000db0000613d0000009a0120009c000000ff0000c13d0000000001000416000000000101004b000000ff0000c13d0000000004000415000000050440008a0000000504400210000000000300041a0000ff0002300190000001010000c13d0000000004000415000000040440008a0000000504400210000000ff01300190000001010000c13d000000ab0130019700000101011001bf0000000002000019000000000010041b0000ff0001100190000001270000c13d000000400100043d0000006402100039000000b10300004100000000003204350000004402100039000000b203000041000000000032043500000024021000390000002b030000390000017b0000013d000000940420009c000000f50000613d000000950220009c000000ff0000c13d000000240230008c000000ff0000413d0000000401100370000000000101043b0000009b041001970000009b0110009c000000ff0000213d0000003301000039000000000101041a0000009b011001970000000002000411000000000121004b000001650000c13d00000000004004350000006501000039000000200010043f00000090010000410000000002000414000000900320009c0000000002018019000000c0012002100000009c011001c70000801002000039000300000004001d023a02350000040f00000003050000290000000102200190000000ff0000613d000000000101043b000000000301041a00000000020004160000000003320019000000000423004b00000000040000190000000104004039000000010440008c0000018a0000c13d0000009f0100004100000000001004350000001101000039000000040010043f000000a0010000410000023c000104300000000002000416000000240330008c000000ff0000413d000000000202004b000000ff0000c13d0000000401100370000000000101043b0000009b031001970000009b0110009c000000ff0000213d0000003301000039000000000101041a0000009b011001970000000002000411000000000121004b000001650000c13d00000000003004350000006501000039000000200010043f00000090040000410000000001000414000000900210009c0000000001048019000000c0011002100000009c011001c70000801002000039000300000003001d023a02350000040f0000000102200190000000ff0000613d000000000101043b000000000101041a000200000001001d0000000001000414000000900210009c0000009001008041000000c0011002100000009c011001c70000801002000039023a02350000040f0000000102200190000000ff0000613d000000000101043b000000000001041b000000b50100004100000000001004390000000001000410000000040010044300000090010000410000000002000414000000900320009c0000000002018019000000c001200210000000a7011001c70000800a02000039023a02350000040f00000001022001900000016e0000613d000000000101043b000000020110006c0000019b0000813d000000400100043d0000004402100039000000bb03000041000000000032043500000024021000390000001d030000390000000000320435000000a10200004100000000002104350000000402100039000000200300003900000000003204350000009002000041000000900310009c00000000010280190000004001100210000000bc011001c70000023c000104300000000001000416000000000101004b000000ff0000c13d0000003301000039000000000101041a0000009b01100197000000800010043f000000a5010000410000023b0001042e0000000001000416000000000101004b000000ff0000c13d0000003301000039000000000201041a0000009b052001970000000003000411000000000335004b000001650000c13d000000ac02200197000000000021041b00000090010000410000000002000414000000900320009c0000000002018019000000c001200210000000ad011001c70000800d020000390000000303000039000000ae040000410000000006000019023a02300000040f0000000101200190000000ff0000613d00000000010000190000023b0001042e0000000002000416000000240330008c000000ff0000413d000000000202004b000000ff0000c13d0000000401100370000000000101043b0000009b021001970000009b0310009c000001510000a13d00000000010000190000023c00010430000300000004001d000100000002001d000200000003001d000000a60100004100000000001004390000000001000410000000040010044300000090010000410000000002000414000000900320009c0000000002018019000000c001200210000000a7011001c70000800202000039023a02350000040f00000001022001900000016e0000613d000000000101043b000000000101004b0000016f0000c13d0000000203000029000000ff0130018f000000010110008c0000000001000019000000010100603900000003020000290000000502200270000000000201001f000001720000c13d000000010100006b000000440000613d000001000100008a000000000113016f000000010200003900000001011001bf000000000010041b0000ff00011001900000004a0000613d000300000002001d00000000010004110000009b061001970000003301000039000000000201041a000000ac03200197000000000363019f000000000031041b00000090010000410000000003000414000000900430009c0000000003018019000000c001300210000000ad011001c70000009b052001970000800d020000390000000303000039000000ae04000041023a02300000040f0000000101200190000000ff0000613d000000030100006b000000f30000c13d000000000200041a000000af01200197000000000010041b0000000103000039000000400100043d000000000031043500000090020000410000000004000414000000900540009c0000000004028019000000900510009c00000000010280190000004001100210000000c002400210000000000112019f0000009d011001c70000800d02000039000000b004000041000000f00000013d0000003303000039000000000303041a0000009b033001970000000004000411000000000343004b000001650000c13d000000000202004b000001870000c13d000000a101000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f000000a201000041000000c40010043f000000a301000041000000e40010043f000000a4010000410000023c00010430000000a101000041000000800010043f0000002001000039000000840010043f000000a40010043f000000b301000041000000c40010043f000000b4010000410000023c00010430000000000001042f00000003010000290000000501100270000000000100001f000000400100043d0000006402100039000000a80300004100000000003204350000004402100039000000a903000041000000000032043500000024021000390000002e030000390000000000320435000000a10200004100000000002104350000000402100039000000200300003900000000003204350000009002000041000000900310009c00000000010280190000004001100210000000aa011001c70000023c00010430023a02070000040f00000000010000190000023b0001042e000000000031041b000000400100043d000000000021043500000090020000410000000003000414000000900430009c0000000003028019000000900410009c00000000010280190000004001100210000000c002300210000000000112019f0000009d011001c70000800d0200003900000002030000390000009e04000041000000f00000013d00000000010004140000000304000029000000040240008c000001a20000c13d00000001020000390000000001000031000001b30000013d0000009002000041000000900310009c0000000001028019000000c001100210000000020200006b000001aa0000c13d0000000002040019000001ae0000013d000000ad011001c7000080090200003900000002030000290000000005000019023a02300000040f00010000000103550000006001100270000000900010019d0000009001100197000000000301004b000001c90000c13d000000400100043d0000000102200190000001fe0000613d0000000202000029000000000021043500000090020000410000000003000414000000900430009c0000000003028019000000900410009c00000000010280190000004001100210000000c002300210000000000112019f0000009d011001c70000800d020000390000000203000039000000ba040000410000000305000029000000f00000013d000000b60310009c000001f80000813d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000000b70630009c000001f80000213d0000000105500190000001f80000c13d000000400030043f0000001f0310018f000000000414043600000001050003670000000501100272000001e80000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000001e00000413d000000000603004b000001b50000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000001b50000013d0000009f0100004100000000001004350000004101000039000000040010043f000000a0010000410000023c000104300000006402100039000000b80300004100000000003204350000004402100039000000b903000041000000000032043500000024021000390000003a030000390000017b0000013d0000009b061001970000003301000039000000000201041a000000ac03200197000000000363019f000000000031041b00000090010000410000000003000414000000900430009c0000000003018019000000c001300210000000ad011001c70000009b052001970000800d020000390000000303000039000000ae04000041023a02300000040f00000001012001900000021b0000613d000000000001042d00000000010000190000023c00010430000000000001042f0000009002000041000000900310009c00000000010280190000000003000414000000900430009c0000000003028019000000c0023002100000004001100210000000000121019f0000009c011001c70000801002000039023a02350000040f00000001022001900000022e0000613d000000000101043b000000000001042d00000000010000190000023c0001043000000233002104210000000102000039000000000001042d0000000002000019000000000001042d00000238002104230000000102000039000000000001042d0000000002000019000000000001042d0000023a000004320000023b0001042e0000023c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000008da5cb5a00000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f340fa01000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000e3a9db1a0000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000008129fc1c000000000000000000000000ffffffffffffffffffffffffffffffffffffffff020000000000000000000000000000000000004000000000000000000000000002000000000000000000000000000000000000200000000000000000000000002da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c44e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000000000000000000000000000000000200000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c7265610000000000000000000000000000000000000084000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420694f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657200000000000000000000000000000000000000640000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f390000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff6563697069656e74206d61792068617665207265766572746564000000000000416464726573733a20756e61626c6520746f2073656e642076616c75652c20727084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5416464726573733a20696e73756666696369656e742062616c616e6365000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000000000000000000000000000003dae99781553425da58a6990bef3d45f6ff97e2416794552f313e1489250dab9" + ], + "address": "0x3a46D58f0ea10bCb7b861cA7D2D8D0a9bBBC666e", + "txHash": "0xcf4d84968abc36071ac21b08888e9660b204650dcdcaf6656fdff75d2f838942" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol/FlatPriceSaleFactory_v_2_1.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol/FlatPriceSaleFactory_v_2_1.json new file mode 100644 index 00000000..5582dd85 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol/FlatPriceSaleFactory_v_2_1.json @@ -0,0 +1,267 @@ +{ + "sourceName": "contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol", + "contractName": "FlatPriceSaleFactory_v_2_1", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_implementation", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + }, + { + "indexed": true, + "internalType": "contract FlatPriceSale_v_2_1", + "name": "clone", + "type": "address" + }, + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "indexed": false, + "internalType": "struct Config", + "name": "config", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "string", + "name": "baseCurrency", + "type": "string" + }, + { + "indexed": false, + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "nativeOracle", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "nativePaymentsEnabled", + "type": "bool" + } + ], + "name": "NewSale", + "type": "event" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "internalType": "struct Config", + "name": "_config", + "type": "tuple" + }, + { + "internalType": "string", + "name": "_baseCurrency", + "type": "string" + }, + { + "internalType": "bool", + "name": "_nativePaymentsEnabled", + "type": "bool" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "_nativeTokenPriceOracle", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable[]", + "name": "tokens", + "type": "address[]" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck[]", + "name": "oracles", + "type": "address[]" + }, + { + "internalType": "uint8[]", + "name": "decimals", + "type": "uint8[]" + } + ], + "name": "newSale", + "outputs": [ + { + "internalType": "contract FlatPriceSale_v_2_1", + "name": "sale", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x0002000000000002001e000000000002000100000001035500000000030100190000006003300270000000de0030019d000000de033001970000000102200190000000260000c13d000000800b0000390000004000b0043f000000040230008c0000031b0000413d000000000201043b000000e002200270000000e20420009c000001140000613d000000e30420009c000000560000613d000000e40120009c0000031b0000c13d0000000001000416000000000101004b0000031b0000c13d0000000001000412001e00000001001d001d00000000001d0000800501000039000000440300003900000000040004150000001e0440008a0000000504400210000000e9020000410373034f0000040f000000e001100197000000800010043f000000fc01000041000003740001042e0000000002000416000000000202004b0000031b0000c13d0000001f02300039000000df02200197000000a002200039000000400020043f0000001f0230018f0000000504300272000000390000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000310000413d000000000502004b000000480000613d0000000504400210000000000141034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000200130008c0000031b0000413d000000a00100043d000000e00210009c0000031b0000213d000000800010043f000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000e101000041000003740001042e0000000002000416000001040430008c0000031b0000413d000000000202004b0000031b0000c13d0000000402100370000000000a02043b000000e002a0009c0000031b0000213d0000002402100370000000000902043b000000e70290009c0000031b0000213d0000000002930049000000e804000041000001240520008c00000000050000190000000005044019000000e802200197000000000602004b000000000400a019000000e80220009c000000000405c019000000000204004b0000031b0000c13d0000004402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000408200039000000000481034f000000000404043b000000e70540009c0000031b0000213d00000000024200190000002402200039000000000232004b0000031b0000213d0000006402100370000000000602043b000000000206004b0000000002000019000000010200c039000000000226004b0000031b0000c13d0000008402100370000000000702043b000000e00270009c0000031b0000213d000000a402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000404200039000000000441034f000000000504043b000000e70450009c0000031b0000213d001c00240020003d00000005025002100000001c02200029000000000232004b0000031b0000213d000000c402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000404200039000000000441034f000000000404043b001b00000004001d000000e70440009c0000031b0000213d001a00240020003d0000001b0200002900000005022002100000001a02200029000000000232004b0000031b0000213d000000e402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000404200039000000000141034f000000000101043b001700000001001d000000e70110009c0000031b0000213d001900240020003d000000170100002900000005011002100000001901100029000000000131004b0000031b0000213d00140000000b001d00100000000a001d001500000009001d001100000008001d001200000007001d001300000006001d001800000005001d000000e90100004100000000001004390000000001000412001600000001001d00000004001004430000002400000443000000de030000410000000001000414000000de0210009c0000000001038019000000c001100210000000ea011001c700008005020000390373036e0000040f00000001022001900000031d0000613d000000000101043b0000008801100270000000eb01100197000000ec011001c70000000000100435000000e90100004100000000001004390000001601000029000000040010044300000024000004430000000001000414000000de0210009c000000de01008041000000c001100210000000ea011001c700008005020000390373036e0000040f00000001022001900000031d0000613d000000000101043b0000007801100210000000ed011001c7000000200010043f0000000001000414000000ee02000041000000090020043f0000000d0000043f00000060020000390000004d0020043f0000004d0200008a0000006d0020043f000000de03000041000000de0210009c0000000001038019000000c001100210000000ef011001c70000800602000039037303690000040f0000000102200190000001030000613d000000000101043b000f00e00010019c000001240000c13d000000400100043d0000004402100039000000f9030000410000000000320435000000240210003900000016030000390000000000320435000000fa020000410000000000210435000000040210003900000020030000390000000000320435000000de0210009c000000de010080410000004001100210000000fb011001c700000375000104300000000001000416000000000101004b0000031b0000c13d000000c001000039000000400010043f0000000301000039000000800010043f000000e502000041000000a00020043f0000002003000039000000c00030043f000000e00010043f000001000020043f000001030000043f000000e601000041000003740001042e000000400200043d0000001401000029000e00000002001d00000000021204360000001505000029001400040050003d00000001010003670000001403100360000000000303043b000000e00430009c0000031b0000213d0000000e07000029000000800470003900000000003404350000001406000029000d00200060003d0000000d03100360000000000303043b000000a0047000390000000000340435000c00400060003d0000000c03100360000000000303043b000000c0047000390000000000340435000b00600060003d0000000b03100360000000000303043b000000e0047000390000000000340435000a00800060003d0000000a03100360000000000303043b00000100047000390000000000340435000900a00060003d0000000903100360000000000303043b00000120047000390000000000340435000800c00060003d0000000803100360000000000303043b000001400470003900000000003404350000016003700039000700e00060003d0000000704100360000000000404043b0000000000430435000601000060003d0000000603100360000000000303043b00000000040000310000000005540049000000230550008a000000e806000041000000000753004b00000000070000190000000007068019000000e805500197000000e808300197000000000958004b0000000006008019000000000558013f000000e80550009c000000000607c019000000000506004b0000031b0000c13d0000001405300029000000000351034f000000000303043b000000e70630009c0000031b0000213d00000020055000390000000004340049000000e806000041000000000745004b00000000070000190000000007062019000000e804400197000000e808500197000000000948004b0000000006008019000000000448013f000000e80440009c000000000607c019000000000406004b0000031b0000c13d0000000e0700002900000180047000390000012006000039000200000006001d0000000000640435000001a0047000390000000000340435000000000651034f0000001f0530018f000001c0047000390000000507300272000001920000613d00000000080000190000000509800210000000000a940019000000000996034f000000000909043b00000000009a04350000000108800039000000000978004b0000018a0000413d000000000805004b000001a10000613d0000000507700210000000000676034f00000000077400190000000305500210000000000807043300000000085801cf000000000858022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000585019f0000000000570435000000000543001900000000000504350000001f033000390003002000000092000000030330017f00000000034300190000000e0430006a00000000004204350000001104000029000000000241034f000100200040003d0000000101100360000000000402043b00000000074304360000001f0240018f000400000004001d0000000503400272000001bc0000613d000000000400001900000005054002100000000006570019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000001b40000413d000500000007001d000000000402004b000001cc0000613d0000000503300210000000000131034f00000005033000290000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f00000000001304350000000402000029000000050120002900000000000104350000000e03000029000000600130003900000013020000290000000000210435000000400130003900000012020000290000000000210435000000e9010000410000000000100439000000160100002900000004001004430000002400000443000000de030000410000000001000414000000de0210009c0000000001038019000000c001100210000000ea011001c700008005020000390373036e0000040f00000001022001900000031d0000613d00000004020000290000001f02200039000000030220017f0000000e0400002900000005034000690000000002230019000000de0320009c000000de0500004100000000020580190000006002200210000000de0340009c00000000040580190000004003400210000000000232019f000000000301043b0000000001000414000000de0410009c0000000001058019000000c001100210000000000121019f000000f0011001c7000000e0053001970000800d020000390000000303000039000000f1040000410000000f06000029037303690000040f00000001012001900000031b0000613d000000f20100004100000000001004390000000f010000290000000400100443000000de010000410000000002000414000000de0320009c0000000002018019000000c001200210000000f3011001c700008002020000390373036e0000040f00000001022001900000031d0000613d000000000101043b000000000101004b000000150400002900000010030000290000031b0000613d000000400500043d000000240150003900000100020000390000000000210435000000f4010000410000000000150435001600000005001d0000000401500039000000000031043500000001010003670000001402100360000000000202043b000000e00320009c0000031b0000213d0000001605000029000001040350003900000000002304350000000d02100360000000000202043b000001240350003900000000002304350000000c02100360000000000202043b000001440350003900000000002304350000000b02100360000000000202043b000001640350003900000000002304350000000a02100360000000000202043b000001840350003900000000002304350000000902100360000000000202043b000001a40350003900000000002304350000000802100360000000000202043b000001c40350003900000000002304350000000702100360000001e403500039000000000202043b00000000002304350000000602100360000000000202043b00000000030000310000000004430049000000230440008a000000e805000041000000000642004b00000000060000190000000006058019000000e804400197000000e807200197000000000847004b0000000005008019000000000447013f000000e80440009c000000000506c019000000000405004b0000031b0000c13d0000001404200029000000000241034f000000000202043b000000e70520009c0000031b0000213d00000020044000390000000003230049000000e805000041000000000634004b00000000060000190000000006052019000000e803300197000000e807400197000000000837004b0000000005008019000000000337013f000000e80330009c000000000506c019000000000305004b0000031b0000c13d000000160600002900000204036000390000000205000029000000000053043500000224036000390000000000230435000000000541034f0000001f0420018f000002440360003900000005062002720000027c0000613d000000000700001900000005087002100000000009830019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000002740000413d000000000704004b0000028b0000613d0000000506600210000000000565034f00000000066300190000000304400210000000000706043300000000074701cf000000000747022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000474019f0000000000460435000000000432001900000000000404350000001f02200039000000030220017f0000001604000029000000440440003900000240052000390000000000540435000000000232001900000001041003600000001103100360000000000303043b00000000023204360000001f0530018f0000000506300272000002a40000613d000000000700001900000005087002100000000009820019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b0000029c0000413d000000000705004b000002b30000613d0000000506600210000000000464034f00000000066200190000000305500210000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f00000000004604350000000004230019000000000004043500000016060000290000008404600039000000120500002900000000005404350000006404600039000000130500002900000000005404350000001f03300039000000030330017f00000000022300190000000003620049000000040330008a000000a404600039000000000034043500000018030000290000000002320436000000000303004b000002d30000613d00000000030000190000001c04100360000000000404043b000000e00540009c00000018050000290000031b0000213d00000000024204360000001c04000029001c00200040003d0000000103300039000000000453004b000002c80000413d00000016040000290000000003420049000000040330008a000000c40440003900000000003404350000001b030000290000000002320436000000000303004b000002e70000613d00000000030000190000001a04100360000000000404043b000000e00540009c0000031b0000213d00000000024204360000001a04000029001a00200040003d00000001033000390000001b0430006c000002dd0000413d00000016040000290000000003420049000000040330008a000000e404400039000000000034043500000017030000290000000002320436000000000303004b000002fb0000613d00000000030000190000001904100360000000000404043b000000ff0540008c0000031b0000213d00000000024204360000001904000029001900200040003d0000000103300039000000170430006c000002f10000413d00000000010004140000000f03000029000000040330008c000003120000613d00000016050000290000000002520049000000de03000041000000de0450009c000000000403001900000000040540190000004004400210000000de0520009c00000000020380190000006002200210000000000242019f000000de0410009c0000000001038019000000c001100210000000000112019f0000000f02000029037303690000040f0000000102200190000003280000613d0000001601000029000000f50110009c0000031e0000413d000000f70100004100000000001004350000004101000039000000040010043f000000f801000041000003750001043000000000010000190000037500010430000000000001042f0000001603000029000000400030043f0000000f010000290000000000130435000000de01000041000000de0230009c00000000030180190000004001300210000000f6011001c7000003740001042e000000400200043d000000000301001900000060033002700000001f0430018f000000de033001970000000505300272000003380000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003300000413d000000000604004b000003470000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000de01000041000000de0420009c000000000201801900000040012002100000006002300210000000000121019f0000037500010430000000000001042f00000000050100190000000000200439000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000231004b000003520000413d000000de010000410000000002000414000000de0420009c0000000002018019000000de0430009c00000000030180190000006001300210000000c002200210000000000112019f000000fd011001c700000000020500190373036e0000040f0000000102200190000003680000613d000000000101043b000000000001042d000000000001042f0000036c002104210000000102000039000000000001042d0000000002000019000000000001042d00000371002104230000000102000039000000000001042d0000000002000019000000000001042d0000037300000432000003740001042e00000375000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000ffa1ad74000000000000000000000000000000000000000000000000000000005f76426d000000000000000000000000000000000000000000000000000000005c60da1b322e3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000c00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e02000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff0000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf39c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd020000000000000000000000000000000000003700000009000000000000000002000000000000000000000000000000000000000000000000000000000000008cbdcd452e06fb30ddd0c122823be8f8622979a6c7acad4f6cc6501e200dd4971806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000669ad09200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000200000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000455243313136373a20637265617465206661696c65640000000000000000000008c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000200000008000000000000000000200000200000000000000000000000000000000000000000000000000000000fb12fa659d2c2a74f9a31b4123b14d4d06b4a5a0efe57de5778d59f350961be5", + "entries": [ + { + "constructorArgs": [ + "0xc6B19D47a336d3382f57EdD768233076a27C28c2" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xfb563bAAaB145Bd393b36a2a76E92A1712F41f8C", + "txHash": "0xddd4ddf0f2b5b2837314f13378be5e0939fa926d3972a264ec379ea50983e542" + }, + { + "constructorArgs": [ + "0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083", + "txHash": "0x6853c955cbf4964ce1e3be5e6b8939b903a106e2cd3cbf9bd6924623710afef6" + }, + { + "constructorArgs": [ + "0x3a46D58f0ea10bCb7b861cA7D2D8D0a9bBBC666e" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0x91b5c17BDaaB2e5ed3Dd3909E11bA3975e4A2da0", + "txHash": "0xc54f198ab0564e496beb1e869790e6add5b29e8c2fbad6e5c12dce0c66ec8171" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/token/ERC20.sol/GenericERC20.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/token/ERC20.sol/GenericERC20.json new file mode 100644 index 00000000..f4fed6b2 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/token/ERC20.sol/GenericERC20.json @@ -0,0 +1,318 @@ +{ + "sourceName": "contracts/ts/token/ERC20.sol", + "contractName": "GenericERC20", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" + }, + { + "internalType": "uint8", + "name": "_decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "supply", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x0001000000000002000a00000000000200000000000103550000008003000039000000400030043f000000000301001900000060033002700000012c033001970000000102200190000000310000c13d000000040230008c000003a00000413d000000000201043b000000e002200270000001370420009c0000010d0000a13d000001380420009c0000011e0000213d0000013c0420009c000001520000613d0000013d0420009c0000018a0000613d0000013e0120009c000003a00000c13d0000000001000416000000000101004b000003a00000c13d0000000403000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0610008c00000000060000190000000106002039000000000662013f0000000106600190000002530000c13d000000800010043f000000000505004b000002630000c13d000001000100008a000000000112016f000000a00010043f000000000104004b000000c001000039000000a001006039000002770000013d0000000002000416000000000202004b000003a00000c13d0000001f023000390000012d022001970000008002200039000000400020043f0000001f0230018f0000000504300272000000440000613d00000000050000190000000506500210000000000761034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b0000003c0000413d000000000502004b000000530000613d0000000504400210000000000141034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000800130008c000003a00000413d000000800400043d0000012e0140009c000003a00000213d0000001f014000390000012f02000041000000000531004b000000000500001900000000050280190000012f01100197000000000601004b00000000020080190000012f0110009c000000000205c019000000000102004b000003a00000c13d000000800140003900000000020104330000012e0120009c000002880000213d0000001f01200039000000200800008a000000000181016f0000003f01100039000000000181016f000000400900043d0000000005190019000000000195004b000000000100001900000001010040390000012e0650009c000002880000213d0000000101100190000002880000c13d0000008001300039000000400050043f000000000a290436000000a0044000390000000005420019000000000515004b000003a00000213d000000000502004b000000870000613d000000000500001900000000065a00190000000007450019000000000707043300000000007604350000002005500039000000000625004b000000800000413d000000000292001900000020022000390000000000020435000000a00400043d0000012e0240009c000003a00000213d0000001f024000390000012f05000041000000000332004b000000000300001900000000030580190000012f02200197000000000602004b00000000050080190000012f0220009c000000000503c019000000000205004b000003a00000c13d000000800240003900000000020204330000012e0320009c000002880000213d0000001f03200039000000000383016f0000003f03300039000000000383016f000000400700043d0000000003370019000000000573004b000000000500001900000001050040390000012e0630009c000002880000213d0000000105500190000002880000c13d000000400030043f0000000006270436000000a0034000390000000004320019000000000114004b000003a00000213d000000000102004b000000ba0000613d000000000100001900000000041600190000000005310019000000000505043300000000005404350000002001100039000000000421004b000000b30000413d000000000172001900000020011000390000000000010435000000c00400043d000000ff0140008c000003a00000213d000000e00300043d000000000b0904330000012e01b0009c000002880000213d0000000305000039000000000105041a000000010210019000000001011002700000007f0c10018f000000000c01c0190000001f01c0008c00000000010000190000000101002039000000000112004b000002530000c13d000a0000000b001d000900000005001d00050000000a001d000400000009001d000100000006001d000300000004001d000800000007001d000700000008001d000200000003001d00060000000c001d0000002001c0008c000000f80000413d000000090100002900000000001004350000012c0100004100000000020004140000012c0320009c0000000002018019000000c00120021000000130011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d0000000a030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000006010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000000f80000813d000000000002041b0000000102200039000000000312004b000000f40000413d0000000a010000290000001f0110008c000002bd0000a13d000000090100002900000000001004350000012c0100004100000000020004140000012c0320009c0000000002018019000000c00120021000000130011001c7000080100200003904ab04a60000040f00000001022001900000000702000029000003a00000613d0000000a03200180000000000101043b000002cb0000c13d0000002002000039000002d60000013d0000013f0420009c000001400000a13d000001400420009c000001990000613d000001410420009c000001a10000613d000001420120009c000003a00000c13d0000000001000416000000000101004b000003a00000c13d0000000501000039000000000101041a000000ff0110018f000000800010043f0000014601000041000004ac0001042e000001390420009c000001ea0000613d0000013a0420009c0000022e0000613d0000013b0220009c000003a00000c13d0000000002000416000000440330008c000003a00000413d000000000202004b000003a00000c13d0000000402100370000000000202043b000001450320009c000003a00000213d0000002401100370000000000301043b000001450130009c000003a00000213d00000000002004350000000101000039000000200010043f0000004002000039000a00000002001d0000000001000019000900000003001d04ab048b0000040f00000009020000290000000000200435000000200010043f00000000010000190000000a0200002904ab048b0000040f0000019d0000013d000001430420009c000002440000613d000001440220009c000003a00000c13d0000000002000416000000440330008c000003a00000413d000000000202004b000003a00000c13d0000000402100370000000000202043b000001450320009c000003a00000213d0000002401100370000000000301043b000000000100041104ab04310000040f0000023b0000013d0000000002000416000000440330008c000003a00000413d000000000202004b000003a00000c13d0000000401100370000000000101043b000a00000001001d000001450110009c000003a00000213d0000000001000411000800000001001d00000000001004350000000101000039000900000001001d000000200010043f0000012c0300004100000000010004140000012c0210009c0000000001038019000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d000000000101043b0000000a020000290000000000200435000000200010043f00000000010004140000012c0210009c0000012c01008041000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d000000000101043b000000000101041a00000024020000390000000002200367000000000202043b0000000003120019000000000123004b0000000001000019000000010100403900000001011001900000029e0000613d0000014d0100004100000000001004350000001101000039000000040010043f0000014e01000041000004ad000104300000000002000416000000240330008c000003a00000413d000000000202004b000003a00000c13d0000000401100370000000000101043b000001450210009c000003a00000213d0000000000100435000000200000043f0000004002000039000000000100001904ab048b0000040f0000019d0000013d0000000001000416000000000101004b000003a00000c13d0000000201000039000000000101041a000000800010043f0000014601000041000004ac0001042e0000000002000416000000640330008c000003a00000413d000000000202004b000003a00000c13d0000000402100370000000000302043b000001450230009c000003a00000213d0000002402100370000000000202043b000a00000002001d000001450220009c000003a00000213d0000004401100370000000000101043b000800000001001d00000000003004350000000101000039000700000001001d000000200010043f0000012c0400004100000000010004140000012c0210009c0000000001048019000000c00110021000000131011001c70000801002000039000900000003001d04ab04a60000040f0000000102200190000003a00000613d000000000101043b0000000002000411000600000002001d0000000000200435000000200010043f00000000010004140000012c0210009c0000012c01008041000000c00110021000000131011001c7000080100200003904ab04a60000040f00000009040000290000000102200190000003a00000613d000000000101043b000000000101041a000000010200008a000000000221004b000002b00000613d0000000803000029000000000231004b000002ab0000813d000000400100043d00000044021000390000014f03000041000000000032043500000024021000390000001d030000390000000000320435000001350200004100000000002104350000000402100039000000200300003900000000003204350000012c020000410000012c0310009c0000000001028019000000400110021000000136011001c7000004ad000104300000000002000416000000440330008c000003a00000413d000000000202004b000003a00000c13d0000000402100370000000000202043b000a00000002001d000001450220009c000003a00000213d0000002401100370000000000101043b000900000001001d0000000001000411000700000001001d00000000001004350000000101000039000800000001001d000000200010043f0000012c0300004100000000010004140000012c0210009c0000000001038019000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d000000000101043b0000000a020000290000000000200435000000200010043f00000000010004140000012c0210009c0000012c01008041000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d000000000101043b000000000101041a0000000903000029000000000231004b000002a40000813d000000400100043d000000640210003900000148030000410000000000320435000000440210003900000149030000410000000000320435000000240210003900000025030000390000000000320435000001350200004100000000002104350000000402100039000000200300003900000000003204350000012c020000410000012c0310009c000000000102801900000040011002100000014a011001c7000004ad000104300000000002000416000000440330008c000003a00000413d000000000202004b000003a00000c13d0000000402100370000000000202043b000001450320009c000003a00000213d0000002401100370000000000301043b000000000100041104ab03b80000040f0000000101000039000000400200043d00000000001204350000012c010000410000012c0320009c0000000002018019000000400120021000000147011001c7000004ac0001042e0000000001000416000000000101004b000003a00000c13d0000000303000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0610008c00000000060000190000000106002039000000000662013f0000000106600190000002590000613d0000014d0100004100000000001004350000002201000039000000040010043f0000014e01000041000004ad00010430000000800010043f000000000505004b000002670000c13d000001000100008a000000000112016f000000a00010043f000000000104004b000000c001000039000000a001006039000002830000013d0000000000300435000000020220008c0000026c0000813d0000026a0000013d0000000000300435000000020220008c000002780000813d00000020010000390000028e0000013d0000014b0200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b0000026e0000413d000000c001300039000002830000013d000001500200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b0000027a0000413d000000c001300039000000610110008a000000200200008a000000000121016f0000014c0210009c0000028e0000a13d0000014d0100004100000000001004350000004101000039000000040010043f0000014e01000041000004ad000104300000008001100039000a00000001001d000000400010043f000000800200003904ab03a20000040f0000000a0400002900000000014100490000012c020000410000012c0310009c00000000010280190000012c0340009c000000000402801900000040024002100000006001100210000000000121019f000004ac0001042e00000008010000290000000a0200002904ab04310000040f000000400100043d0000000902000029000002b60000013d000000000331004900000007010000290000000a0200002904ab04310000040f000000400100043d0000000802000029000002b60000013d00000000033100490000000001040019000000060200002904ab04310000040f000000090400002900000000010400190000000a02000029000000080300002904ab03b80000040f000000400100043d000000070200002900000000002104350000012c020000410000012c0310009c0000000001028019000000400110021000000147011001c7000004ac0001042e0000000a0100006b0000000001000019000002c20000613d000000050100002900000000010104330000000a040000290000000302400210000000010300008a000000000223022f000000000232013f000000000121016f0000000102400210000000000121019f000002e50000013d00000020020000390000000004000019000000040600002900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000002ce0000413d0000000a0330006c000002e20000813d0000000a030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f00000004022000290000000002020433000000000232016f000000000021041b0000000a01000029000000010110021000000001011001bf0000000902000029000000000012041b00000008010000290000000001010433000a00000001001d0000012e0110009c000002880000213d0000000401000039000900000001001d000000000101041a000000010210019000000001021002700000007f0320018f000000000302c019000600000003001d0000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000002530000c13d0000000601000029000000200110008c0000031a0000413d000000090100002900000000001004350000012c0100004100000000020004140000012c0320009c0000000002018019000000c00120021000000130011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d0000000a030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000006010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000031a0000813d000000000002041b0000000102200039000000000312004b000003160000413d0000000a010000290000001f0110008c0000032f0000a13d000000090100002900000000001004350000012c0100004100000000020004140000012c0320009c0000000002018019000000c00120021000000130011001c7000080100200003904ab04a60000040f00000001022001900000000702000029000003a00000613d0000000a03200180000000000101043b0000033d0000c13d0000002002000039000003480000013d0000000a0100006b0000000001000019000003340000613d000000010100002900000000010104330000000a040000290000000302400210000000010300008a000000000223022f000000000232013f000000000121016f0000000102400210000000000121019f000003570000013d00000020020000390000000004000019000000080600002900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000003400000413d0000000a0330006c000003540000813d0000000a030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f00000008022000290000000002020433000000000232016f000000000021041b0000000a01000029000000010110021000000001011001bf0000000302000029000000ff0220018f0000000903000029000000000013041b0000000501000039000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000001000411000a00000001001d000000000101004b0000036c0000c13d000000400100043d00000044021000390000013403000041000000000032043500000024021000390000001f03000039000001de0000013d0000000201000039000000000301041a0000000202300029000000000332004b00000000030000190000000103004039000000010330008c000001840000613d000000000021041b0000000a010000290000000000100435000000200000043f0000012c0300004100000000010004140000012c0210009c0000000001038019000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000003a00000613d000000000101043b000000000201041a00000002030000290000000002320019000000000021041b000000400100043d000000000031043500000000020004140000012c0320009c0000012c0400004100000000020480190000012c0310009c00000000010480190000004001100210000000c002200210000000000121019f00000130011001c70000800d020000390000000303000039000001320400004100000000050000190000000a0600002904ab04a10000040f0000000101200190000003a00000613d0000002001000039000001000010044300000120000004430000013301000041000004ac0001042e0000000001000019000004ad0001043000000020030000390000000004310436000000003202043400000000002404350000004001100039000000000402004b000003b10000613d000000000400001900000000054100190000000006430019000000000606043300000000006504350000002004400039000000000524004b000003aa0000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d0004000000000002000400000003001d0000014501100198000004080000613d000201450020019c000004120000613d000300000001001d0000000000100435000000200000043f0000012c0100004100000000020004140000012c0320009c0000000002018019000000c00120021000000131011001c7000080100200003904ab04a60000040f0000000102200190000004060000613d000000000101043b000000000201041a000100000002001d000000040120006c0000041c0000413d00000003010000290000000000100435000000200000043f0000012c0300004100000000010004140000012c0210009c0000000001038019000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000004060000613d0000000103000029000000040230006a000000000101043b000000000021041b0000000201000029000000000010043500000000010004140000012c0210009c0000012c01008041000000c00110021000000131011001c7000080100200003904ab04a60000040f0000000102200190000004060000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d00000000003104350000012c0200004100000000030004140000012c0430009c00000000030280190000012c0410009c00000000010280190000004001100210000000c002300210000000000112019f00000130011001c70000800d02000039000000030300003900000132040000410000000305000029000000020600002904ab04a10000040f0000000101200190000004060000613d000000000001042d0000000001000019000004ad00010430000000400100043d00000064021000390000015503000041000000000032043500000044021000390000015603000041000000000032043500000024021000390000002503000039000004250000013d000000400100043d00000064021000390000015303000041000000000032043500000044021000390000015403000041000000000032043500000024021000390000002303000039000004250000013d000000400100043d000000640210003900000151030000410000000000320435000000440210003900000152030000410000000000320435000000240210003900000026030000390000000000320435000001350200004100000000002104350000000402100039000000200300003900000000003204350000012c020000410000012c0310009c000000000102801900000040011002100000014a011001c7000004ad00010430000300000000000200000145011001980000046c0000613d000200000003001d000301450020019c000004760000613d000100000001001d00000000001004350000000101000039000000200010043f0000012c0300004100000000010004140000012c0210009c0000000001038019000000c00110021000000131011001c7000080100200003904ab04a60000040f000000010220019000000003030000290000046a0000613d000000000101043b0000000000300435000000200010043f00000000010004140000012c0210009c0000012c01008041000000c00110021000000131011001c7000080100200003904ab04a60000040f000000030600002900000001022001900000046a0000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000012c0200004100000000030004140000012c0430009c00000000030280190000012c0410009c00000000010280190000004001100210000000c002300210000000000112019f00000130011001c70000800d0200003900000003030000390000015704000041000000010500002904ab04a10000040f00000001012001900000046a0000613d000000000001042d0000000001000019000004ad00010430000000400100043d00000064021000390000015a03000041000000000032043500000044021000390000015b030000410000000000320435000000240210003900000024030000390000047f0000013d000000400100043d000000640210003900000158030000410000000000320435000000440210003900000159030000410000000000320435000000240210003900000022030000390000000000320435000001350200004100000000002104350000000402100039000000200300003900000000003204350000012c020000410000012c0310009c000000000102801900000040011002100000014a011001c7000004ad000104300000012c030000410000012c0410009c000000000103801900000040011002100000012c0420009c00000000020380190000006002200210000000000112019f00000000020004140000012c0420009c0000000002038019000000c002200210000000000112019f0000015c011001c7000080100200003904ab04a60000040f00000001022001900000049f0000613d000000000101043b000000000001042d0000000001000019000004ad00010430000004a4002104210000000102000039000000000001042d0000000002000019000000000001042d000004a9002104230000000102000039000000000001042d0000000002000019000000000001042d000004ab00000432000004ac0001042e000004ad000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000020000000000000000000000000000004000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000020000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7700000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b000000000000000000000000000000000000000000000000ffffffffffffff7f4e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000045524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f2061648c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f206164640200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090163f528fff388359ee3eca8dd71e5f90725a7ab34ecc4f9899d1d416a87631", + "entries": [ + { + "constructorArgs": [ + "jack", + "jd", + 18, + "1000000000000000000000000000" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xCa785532ad49f974E41171fA4Ea8E4B5381aE0bD", + "txHash": "0x0a57e0c7a65b9c68f78755d7f06864a713f7a3e5d89f0cb0590a1a6ee5b3d590" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/hardhat.config.ts b/packages/hardhat/zksync-hardhat/hardhat.config.ts new file mode 100644 index 00000000..e8db4c21 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/hardhat.config.ts @@ -0,0 +1,52 @@ +import { HardhatUserConfig } from "hardhat/config"; + +import "@matterlabs/hardhat-zksync"; + +const config: HardhatUserConfig = { + defaultNetwork: "zkSyncSepoliaTestnet", + networks: { + zkSyncSepoliaTestnet: { + url: "https://sepolia.era.zksync.dev", + ethNetwork: "sepolia", + zksync: true, + verifyURL: "https://explorer.sepolia.era.zksync.dev/contract_verification", + }, + zkSyncMainnet: { + url: "https://mainnet.era.zksync.io", + ethNetwork: "mainnet", + zksync: true, + verifyURL: "https://zksync2-mainnet-explorer.zksync.io/contract_verification", + }, + zkSyncGoerliTestnet: { // deprecated network + url: "https://testnet.era.zksync.dev", + ethNetwork: "goerli", + zksync: true, + verifyURL: "https://zksync2-testnet-explorer.zksync.dev/contract_verification", + }, + dockerizedNode: { + url: "http://localhost:3050", + ethNetwork: "http://localhost:8545", + zksync: true, + }, + inMemoryNode: { + url: "http://127.0.0.1:8011", + ethNetwork: "localhost", // in-memory node doesn't support eth node; removing this line will cause an error + zksync: true, + }, + hardhat: { + zksync: true, + }, + }, + zksolc: { + version: "latest", + settings: { + // find all available options in the official documentation + // https://era.zksync.io/docs/tools/hardhat/hardhat-zksync-solc.html#configuration + }, + }, + solidity: { + version: "0.8.17", + }, +}; + +export default config; diff --git a/packages/hardhat/zksync-hardhat/package.json b/packages/hardhat/zksync-hardhat/package.json new file mode 100644 index 00000000..e7fbb1c3 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/package.json @@ -0,0 +1,35 @@ +{ + "name": "zksync-hardhat-template", + "description": "A template for zkSync smart contracts development with Hardhat", + "private": true, + "author": "Matter Labs", + "license": "MIT", + "repository": "https://github.com/matter-labs/zksync-hardhat-template.git", + "scripts": { + "deploy": "hardhat deploy-zksync --script deploy.ts", + "interact": "hardhat deploy-zksync --script interact.ts", + "compile": "hardhat compile", + "clean": "hardhat clean", + "test": "hardhat test --network hardhat" + }, + "devDependencies": { + "@matterlabs/hardhat-zksync": "^1.0.0", + "@matterlabs/zksync-contracts": "^0.6.1", + "@nomiclabs/hardhat-etherscan": "^3.1.7", + "@openzeppelin/contracts": "^4.6.0", + "@types/chai": "^4.3.4", + "@types/mocha": "^10.0.1", + "chai": "^4.3.7", + "dotenv": "^16.0.3", + "ethers": "^6.9.2", + "hardhat": "^2.12.4", + "mocha": "^10.2.0", + "ts-node": "^10.9.1", + "typescript": "^4.9.5", + "zksync-ethers": "^6.7.0" + }, + "dependencies": { + "@chainlink/contracts": "^1.1.1", + "@openzeppelin/contracts-upgradeable": "^5.0.2" + } +} diff --git a/packages/hardhat/zksync-hardhat/pnpm-lock.yaml b/packages/hardhat/zksync-hardhat/pnpm-lock.yaml new file mode 100644 index 00000000..ac04e4f8 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/pnpm-lock.yaml @@ -0,0 +1,5030 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@chainlink/contracts': + specifier: ^1.1.1 + version: 1.1.1(ethers@6.13.0) + '@openzeppelin/contracts-upgradeable': + specifier: ^5.0.2 + version: 5.0.2(@openzeppelin/contracts@4.9.6) + +devDependencies: + '@matterlabs/hardhat-zksync': + specifier: ^1.0.0 + version: 1.0.0(@matterlabs/hardhat-zksync-deploy@1.4.0)(@matterlabs/hardhat-zksync-ethers@1.0.0)(@matterlabs/hardhat-zksync-node@1.0.3)(@matterlabs/hardhat-zksync-solc@1.1.4)(@matterlabs/hardhat-zksync-upgradable@1.4.1)(@matterlabs/hardhat-zksync-verify@1.4.3)(ts-node@10.9.2)(typescript@4.9.5) + '@matterlabs/zksync-contracts': + specifier: ^0.6.1 + version: 0.6.1(@openzeppelin/contracts-upgradeable@5.0.2)(@openzeppelin/contracts@4.9.6) + '@nomiclabs/hardhat-etherscan': + specifier: ^3.1.7 + version: 3.1.8(hardhat@2.22.5) + '@openzeppelin/contracts': + specifier: ^4.6.0 + version: 4.9.6 + '@types/chai': + specifier: ^4.3.4 + version: 4.3.16 + '@types/mocha': + specifier: ^10.0.1 + version: 10.0.6 + chai: + specifier: ^4.3.7 + version: 4.4.1 + dotenv: + specifier: ^16.0.3 + version: 16.4.5 + ethers: + specifier: ^6.9.2 + version: 6.13.0 + hardhat: + specifier: ^2.12.4 + version: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + mocha: + specifier: ^10.2.0 + version: 10.4.0 + ts-node: + specifier: ^10.9.1 + version: 10.9.2(@types/node@20.14.1)(typescript@4.9.5) + typescript: + specifier: ^4.9.5 + version: 4.9.5 + zksync-ethers: + specifier: ^6.7.0 + version: 6.7.1(ethers@6.13.0) + +packages: + + /@adraffy/ens-normalize@1.10.1: + resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==} + + /@babel/code-frame@7.24.6: + resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.6 + picocolors: 1.0.1 + dev: false + + /@babel/helper-validator-identifier@7.24.6: + resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/highlight@7.24.6: + resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.6 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + dev: false + + /@babel/runtime@7.24.6: + resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + + /@balena/dockerignore@1.0.2: + resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} + dev: true + + /@chainlink/contracts@1.1.1(ethers@6.13.0): + resolution: {integrity: sha512-bAjusEonAqlaT0rndBIlcmYtI923p1r/OVqyd+NGtP0EpZmCJkOB8/I61xiUN3FIMC8IBZl68zYZdTiq/Y8MhQ==} + dependencies: + '@changesets/changelog-github': 0.4.8 + '@changesets/cli': 2.26.2 + '@eth-optimism/contracts': 0.6.0(ethers@6.13.0) + '@openzeppelin/contracts': 4.9.3 + '@openzeppelin/contracts-upgradeable': 4.9.3 + '@scroll-tech/contracts': 0.1.0 + semver: 7.6.2 + transitivePeerDependencies: + - bufferutil + - encoding + - ethers + - utf-8-validate + dev: false + + /@changesets/apply-release-plan@6.1.4: + resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} + dependencies: + '@babel/runtime': 7.24.6 + '@changesets/config': 2.3.1 + '@changesets/get-version-range-type': 0.3.2 + '@changesets/git': 2.0.0 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.6.2 + dev: false + + /@changesets/assemble-release-plan@5.2.4: + resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} + dependencies: + '@babel/runtime': 7.24.6 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + semver: 7.6.2 + dev: false + + /@changesets/changelog-git@0.1.14: + resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} + dependencies: + '@changesets/types': 5.2.1 + dev: false + + /@changesets/changelog-github@0.4.8: + resolution: {integrity: sha512-jR1DHibkMAb5v/8ym77E4AMNWZKB5NPzw5a5Wtqm1JepAuIF+hrKp2u04NKM14oBZhHglkCfrla9uq8ORnK/dw==} + dependencies: + '@changesets/get-github-info': 0.5.2 + '@changesets/types': 5.2.1 + dotenv: 8.6.0 + transitivePeerDependencies: + - encoding + dev: false + + /@changesets/cli@2.26.2: + resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} + hasBin: true + dependencies: + '@babel/runtime': 7.24.6 + '@changesets/apply-release-plan': 6.1.4 + '@changesets/assemble-release-plan': 5.2.4 + '@changesets/changelog-git': 0.1.14 + '@changesets/config': 2.3.1 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/get-release-plan': 3.0.17 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@changesets/write': 0.2.3 + '@manypkg/get-packages': 1.1.3 + '@types/is-ci': 3.0.4 + '@types/semver': 7.5.8 + ansi-colors: 4.1.3 + chalk: 2.4.2 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + is-ci: 3.0.1 + meow: 6.1.1 + outdent: 0.5.0 + p-limit: 2.3.0 + preferred-pm: 3.1.3 + resolve-from: 5.0.0 + semver: 7.6.2 + spawndamnit: 2.0.0 + term-size: 2.2.1 + tty-table: 4.2.3 + dev: false + + /@changesets/config@2.3.1: + resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} + dependencies: + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/logger': 0.0.5 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.7 + dev: false + + /@changesets/errors@0.1.4: + resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + dependencies: + extendable-error: 0.1.7 + dev: false + + /@changesets/get-dependents-graph@1.3.6: + resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} + dependencies: + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + chalk: 2.4.2 + fs-extra: 7.0.1 + semver: 7.6.2 + dev: false + + /@changesets/get-github-info@0.5.2: + resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} + dependencies: + dataloader: 1.4.0 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: false + + /@changesets/get-release-plan@3.0.17: + resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} + dependencies: + '@babel/runtime': 7.24.6 + '@changesets/assemble-release-plan': 5.2.4 + '@changesets/config': 2.3.1 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + dev: false + + /@changesets/get-version-range-type@0.3.2: + resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} + dev: false + + /@changesets/git@2.0.0: + resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} + dependencies: + '@babel/runtime': 7.24.6 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.7 + spawndamnit: 2.0.0 + dev: false + + /@changesets/logger@0.0.5: + resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} + dependencies: + chalk: 2.4.2 + dev: false + + /@changesets/parse@0.3.16: + resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} + dependencies: + '@changesets/types': 5.2.1 + js-yaml: 3.14.1 + dev: false + + /@changesets/pre@1.0.14: + resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} + dependencies: + '@babel/runtime': 7.24.6 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + dev: false + + /@changesets/read@0.5.9: + resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} + dependencies: + '@babel/runtime': 7.24.6 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/parse': 0.3.16 + '@changesets/types': 5.2.1 + chalk: 2.4.2 + fs-extra: 7.0.1 + p-filter: 2.1.0 + dev: false + + /@changesets/types@4.1.0: + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + dev: false + + /@changesets/types@5.2.1: + resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} + dev: false + + /@changesets/write@0.2.3: + resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} + dependencies: + '@babel/runtime': 7.24.6 + '@changesets/types': 5.2.1 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 2.8.8 + dev: false + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@eth-optimism/contracts@0.6.0(ethers@6.13.0): + resolution: {integrity: sha512-vQ04wfG9kMf1Fwy3FEMqH2QZbgS0gldKhcBeBUPfO8zu68L61VI97UDXmsMQXzTsEAxK8HnokW3/gosl4/NW3w==} + peerDependencies: + ethers: ^5 + dependencies: + '@eth-optimism/core-utils': 0.12.0 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + ethers: 6.13.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@eth-optimism/core-utils@0.12.0: + resolution: {integrity: sha512-qW+7LZYCz7i8dRa7SRlUKIo1VBU8lvN0HeXCxJR+z+xtMzMQpPds20XJNCMclszxYQHkXY00fOT6GvFw9ZL6nw==} + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/contracts': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/providers': 5.7.2 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 + bufio: 1.2.1 + chai: 4.4.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@ethersproject/abi@5.7.0: + resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + /@ethersproject/abstract-provider@5.7.0: + resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/properties': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 + + /@ethersproject/abstract-signer@5.7.0: + resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + + /@ethersproject/address@5.7.0: + resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/rlp': 5.7.0 + + /@ethersproject/base64@5.7.0: + resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} + dependencies: + '@ethersproject/bytes': 5.7.0 + + /@ethersproject/basex@5.7.0: + resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/properties': 5.7.0 + dev: false + + /@ethersproject/bignumber@5.7.0: + resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + bn.js: 5.2.1 + + /@ethersproject/bytes@5.7.0: + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + dependencies: + '@ethersproject/logger': 5.7.0 + + /@ethersproject/constants@5.7.0: + resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + + /@ethersproject/contracts@5.7.0: + resolution: {integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==} + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/transactions': 5.7.0 + dev: false + + /@ethersproject/hash@5.7.0: + resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + /@ethersproject/keccak256@5.7.0: + resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} + dependencies: + '@ethersproject/bytes': 5.7.0 + js-sha3: 0.8.0 + + /@ethersproject/logger@5.7.0: + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + + /@ethersproject/networks@5.7.1: + resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} + dependencies: + '@ethersproject/logger': 5.7.0 + + /@ethersproject/properties@5.7.0: + resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} + dependencies: + '@ethersproject/logger': 5.7.0 + + /@ethersproject/providers@5.7.2: + resolution: {integrity: sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==} + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 + bech32: 1.1.4 + ws: 7.4.6 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@ethersproject/random@5.7.0: + resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + dev: false + + /@ethersproject/rlp@5.7.0: + resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + + /@ethersproject/sha2@5.7.0: + resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + hash.js: 1.1.7 + dev: false + + /@ethersproject/signing-key@5.7.0: + resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + bn.js: 5.2.1 + elliptic: 6.5.4 + hash.js: 1.1.7 + + /@ethersproject/strings@5.7.0: + resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + + /@ethersproject/transactions@5.7.0: + resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + + /@ethersproject/web@5.7.1: + resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} + dependencies: + '@ethersproject/base64': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + /@fastify/busboy@2.1.1: + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + dev: true + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@manypkg/find-root@1.1.0: + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + dependencies: + '@babel/runtime': 7.24.6 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + dev: false + + /@manypkg/get-packages@1.1.3: + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + dependencies: + '@babel/runtime': 7.24.6 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + dev: false + + /@matterlabs/hardhat-zksync-deploy@1.4.0(ethers@6.13.0)(hardhat@2.22.5)(zksync-ethers@6.7.1): + resolution: {integrity: sha512-M/dHuVmx8AdWtJj5IHgPfFn8twde8VJU8bqD881uT32iMfODnP9/QmsRucS2oS6rqC9HmEpFFsIBQlqYBFGOyw==} + peerDependencies: + ethers: ^6.7.1 + hardhat: ^2.19.4 + zksync-ethers: ^6.0.0 + dependencies: + '@matterlabs/hardhat-zksync-solc': 1.1.4(hardhat@2.22.5) + chai: 4.4.1 + chalk: 4.1.2 + ethers: 6.13.0 + fs-extra: 11.2.0 + glob: 10.4.1 + hardhat: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + lodash: 4.17.21 + sinon: 17.0.1 + sinon-chai: 3.7.0(chai@4.4.1)(sinon@17.0.1) + ts-morph: 21.0.1 + zksync-ethers: 6.7.1(ethers@6.13.0) + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@matterlabs/hardhat-zksync-ethers@1.0.0(ethers@6.13.0)(ts-node@10.9.2)(typescript@4.9.5)(zksync-ethers@6.7.1): + resolution: {integrity: sha512-+po8lqpFVKEwfjanhkUO+PLDmwf/GEBK21vd4X7Pn/g9RLLal1c5m+xhHIVWV99xWPnlHjHIPHZfBf8fN4UasA==} + peerDependencies: + ethers: ^6.7.1 + zksync-ethers: ^6.0.0 + dependencies: + '@matterlabs/hardhat-zksync-deploy': 1.4.0(ethers@6.13.0)(hardhat@2.22.5)(zksync-ethers@6.7.1) + '@matterlabs/hardhat-zksync-solc': 1.1.4(hardhat@2.22.5) + chai: 4.4.1 + chalk: 5.3.0 + ethers: 6.13.0 + hardhat: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + zksync-ethers: 6.7.1(ethers@6.13.0) + transitivePeerDependencies: + - bufferutil + - c-kzg + - encoding + - supports-color + - ts-node + - typescript + - utf-8-validate + dev: true + + /@matterlabs/hardhat-zksync-node@1.0.3(hardhat@2.22.5)(zksync-ethers@6.7.1): + resolution: {integrity: sha512-NPJU8yjaM6OUNQSatEeRkd6gn5kfvv23BlNVuF1vWMfw0Vo5HWM3jx4josRbgzlx2byzNeXDyBHZXNsohOhSVw==} + peerDependencies: + hardhat: ^2.19.4 + zksync-ethers: ^6.0.0 + dependencies: + '@matterlabs/hardhat-zksync-solc': 1.1.4(hardhat@2.22.5) + axios: 1.7.2(debug@4.3.5) + chai: 4.4.1 + chalk: 4.1.2 + fs-extra: 11.2.0 + hardhat: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + proxyquire: 2.1.3 + sinon: 17.0.1 + sinon-chai: 3.7.0(chai@4.4.1)(sinon@17.0.1) + undici: 5.28.4 + zksync-ethers: 6.7.1(ethers@6.13.0) + transitivePeerDependencies: + - debug + - encoding + - supports-color + dev: true + + /@matterlabs/hardhat-zksync-solc@1.1.4(hardhat@2.22.5): + resolution: {integrity: sha512-4/usbogh9neewR2/v8Dn2OzqVblZMUuT/iH2MyPZgPRZYQlL4SlZtMvokU9UQjZT6iSoaKCbbdWESHDHSzfUjA==} + peerDependencies: + hardhat: ^2.19.4 + dependencies: + '@nomiclabs/hardhat-docker': 2.0.2 + chai: 4.4.1 + chalk: 4.1.2 + debug: 4.3.5 + dockerode: 4.0.2 + fs-extra: 11.2.0 + hardhat: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + proper-lockfile: 4.1.2 + semver: 7.6.2 + sinon: 17.0.1 + sinon-chai: 3.7.0(chai@4.4.1)(sinon@17.0.1) + undici: 5.28.4 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@matterlabs/hardhat-zksync-upgradable@1.4.1(@openzeppelin/contracts-upgradeable@5.0.2)(ts-node@10.9.2)(typescript@4.9.5): + resolution: {integrity: sha512-bx8yuR40cwV63YKmPQpCM1RJ/vYPgrVY2SXeknI4nVn3/uKSQ/xK4xCxXJ2RRS0zy5eaVlVpF5uWCFboxH9wKQ==} + peerDependencies: + '@openzeppelin/contracts-upgradeable': ^4.9.2 + dependencies: + '@matterlabs/hardhat-zksync-deploy': 1.4.0(ethers@6.13.0)(hardhat@2.22.5)(zksync-ethers@6.7.1) + '@matterlabs/hardhat-zksync-solc': 1.1.4(hardhat@2.22.5) + '@openzeppelin/contracts-upgradeable': 5.0.2(@openzeppelin/contracts@4.9.6) + '@openzeppelin/upgrades-core': 1.33.1 + chalk: 4.1.2 + compare-versions: 6.1.0 + ethereumjs-util: 7.1.5 + ethers: 6.13.0 + fs-extra: 7.0.1 + hardhat: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + proper-lockfile: 4.1.2 + solidity-ast: 0.4.56 + zksync-ethers: 6.7.1(ethers@6.13.0) + transitivePeerDependencies: + - bufferutil + - c-kzg + - encoding + - supports-color + - ts-node + - typescript + - utf-8-validate + dev: true + + /@matterlabs/hardhat-zksync-verify@1.4.3(@nomicfoundation/hardhat-verify@2.0.8)(ts-node@10.9.2)(typescript@4.9.5): + resolution: {integrity: sha512-TONID/+mG8KngZ9iI8yiOgC8VD+cus7M+ejCjF4bGNzsmmzsklGJwzry6bQpk8BXqzsMgbuV+4KjDT4JXiS/QA==} + peerDependencies: + '@nomicfoundation/hardhat-verify': ^2.0.0 + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/address': 5.7.0 + '@matterlabs/hardhat-zksync-solc': 1.1.4(hardhat@2.22.5) + '@nomicfoundation/hardhat-verify': 2.0.8(hardhat@2.22.5) + '@openzeppelin/contracts': 4.9.6 + axios: 1.7.2(debug@4.3.5) + cbor: 8.1.0 + chai: 4.4.1 + chalk: 4.1.2 + debug: 4.3.5 + hardhat: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + sinon: 17.0.1 + sinon-chai: 3.7.0(chai@4.4.1)(sinon@17.0.1) + transitivePeerDependencies: + - bufferutil + - c-kzg + - encoding + - supports-color + - ts-node + - typescript + - utf-8-validate + dev: true + + /@matterlabs/hardhat-zksync@1.0.0(@matterlabs/hardhat-zksync-deploy@1.4.0)(@matterlabs/hardhat-zksync-ethers@1.0.0)(@matterlabs/hardhat-zksync-node@1.0.3)(@matterlabs/hardhat-zksync-solc@1.1.4)(@matterlabs/hardhat-zksync-upgradable@1.4.1)(@matterlabs/hardhat-zksync-verify@1.4.3)(ts-node@10.9.2)(typescript@4.9.5): + resolution: {integrity: sha512-xxtOG7amWGv8hGadjZix5G33A1tWHSWd7mGprX0eQ3wO0BNJbCw+/QJhIfK+rAx3TTfsPbg3G8AZE9XPrrubTw==} + peerDependencies: + '@matterlabs/hardhat-zksync-deploy': ^1.3.0 + '@matterlabs/hardhat-zksync-ethers': ^1.0.0 + '@matterlabs/hardhat-zksync-node': ^1.0.3 + '@matterlabs/hardhat-zksync-solc': ^1.1.4 + '@matterlabs/hardhat-zksync-upgradable': ^1.4.0 + '@matterlabs/hardhat-zksync-verify': ^1.4.2 + dependencies: + '@matterlabs/hardhat-zksync-deploy': 1.4.0(ethers@6.13.0)(hardhat@2.22.5)(zksync-ethers@6.7.1) + '@matterlabs/hardhat-zksync-ethers': 1.0.0(ethers@6.13.0)(ts-node@10.9.2)(typescript@4.9.5)(zksync-ethers@6.7.1) + '@matterlabs/hardhat-zksync-node': 1.0.3(hardhat@2.22.5)(zksync-ethers@6.7.1) + '@matterlabs/hardhat-zksync-solc': 1.1.4(hardhat@2.22.5) + '@matterlabs/hardhat-zksync-upgradable': 1.4.1(@openzeppelin/contracts-upgradeable@5.0.2)(ts-node@10.9.2)(typescript@4.9.5) + '@matterlabs/hardhat-zksync-verify': 1.4.3(@nomicfoundation/hardhat-verify@2.0.8)(ts-node@10.9.2)(typescript@4.9.5) + '@matterlabs/zksync-contracts': 0.6.1(@openzeppelin/contracts-upgradeable@4.9.6)(@openzeppelin/contracts@4.9.6) + '@nomicfoundation/hardhat-ethers': 3.0.6(ethers@6.13.0)(hardhat@2.22.5) + '@nomicfoundation/hardhat-verify': 2.0.8(hardhat@2.22.5) + '@openzeppelin/contracts': 4.9.6 + '@openzeppelin/contracts-upgradeable': 4.9.6 + '@openzeppelin/upgrades-core': 1.33.1 + chai: 4.4.1 + ethers: 6.13.0 + hardhat: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + sinon: 17.0.1 + sinon-chai: 3.7.0(chai@4.4.1)(sinon@17.0.1) + zksync-ethers: 6.7.1(ethers@6.13.0) + transitivePeerDependencies: + - bufferutil + - c-kzg + - supports-color + - ts-node + - typescript + - utf-8-validate + dev: true + + /@matterlabs/zksync-contracts@0.6.1(@openzeppelin/contracts-upgradeable@4.9.6)(@openzeppelin/contracts@4.9.6): + resolution: {integrity: sha512-+hucLw4DhGmTmQlXOTEtpboYCaOm/X2VJcWmnW4abNcOgQXEHX+mTxQrxEfPjIZT0ZE6z5FTUrOK9+RgUZwBMQ==} + peerDependencies: + '@openzeppelin/contracts': 4.6.0 + '@openzeppelin/contracts-upgradeable': 4.6.0 + dependencies: + '@openzeppelin/contracts': 4.9.6 + '@openzeppelin/contracts-upgradeable': 4.9.6 + dev: true + + /@matterlabs/zksync-contracts@0.6.1(@openzeppelin/contracts-upgradeable@5.0.2)(@openzeppelin/contracts@4.9.6): + resolution: {integrity: sha512-+hucLw4DhGmTmQlXOTEtpboYCaOm/X2VJcWmnW4abNcOgQXEHX+mTxQrxEfPjIZT0ZE6z5FTUrOK9+RgUZwBMQ==} + peerDependencies: + '@openzeppelin/contracts': 4.6.0 + '@openzeppelin/contracts-upgradeable': 4.6.0 + dependencies: + '@openzeppelin/contracts': 4.9.6 + '@openzeppelin/contracts-upgradeable': 5.0.2(@openzeppelin/contracts@4.9.6) + dev: true + + /@metamask/eth-sig-util@4.0.1: + resolution: {integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==} + engines: {node: '>=12.0.0'} + dependencies: + ethereumjs-abi: 0.6.8 + ethereumjs-util: 6.2.1 + ethjs-util: 0.1.6 + tweetnacl: 1.0.3 + tweetnacl-util: 0.15.1 + dev: true + + /@noble/curves@1.2.0: + resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} + dependencies: + '@noble/hashes': 1.3.2 + + /@noble/hashes@1.2.0: + resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} + dev: true + + /@noble/hashes@1.3.2: + resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} + engines: {node: '>= 16'} + + /@noble/secp256k1@1.7.1: + resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + /@nomicfoundation/edr-darwin-arm64@0.4.0: + resolution: {integrity: sha512-7+rraFk9tCqvfemv9Ita5vTlSBAeO/S5aDKOgGRgYt0JEKZlrX161nDW6UfzMPxWl9GOLEDUzCEaYuNmXseUlg==} + engines: {node: '>= 18'} + dev: true + + /@nomicfoundation/edr-darwin-x64@0.4.0: + resolution: {integrity: sha512-+Hrc0mP9L6vhICJSfyGo/2taOToy1AIzVZawO3lU8Lf7oDQXfhQ4UkZnkWAs9SVu1eUwHUGGGE0qB8644piYgg==} + engines: {node: '>= 18'} + dev: true + + /@nomicfoundation/edr-linux-arm64-gnu@0.4.0: + resolution: {integrity: sha512-4HUDMchNClQrVRfVTqBeSX92hM/3khCgpZkXP52qrnJPqgbdCxosOehlQYZ65wu0b/kaaZSyvACgvCLSQ5oSzQ==} + engines: {node: '>= 18'} + dev: true + + /@nomicfoundation/edr-linux-arm64-musl@0.4.0: + resolution: {integrity: sha512-D4J935ZRL8xfnP3zIFlCI9jXInJ0loDUkCTLeCEbOf2uuDumWDghKNQlF1itUS+EHaR1pFVBbuwqq8hVK0dASg==} + engines: {node: '>= 18'} + dev: true + + /@nomicfoundation/edr-linux-x64-gnu@0.4.0: + resolution: {integrity: sha512-6x7HPy+uN5Cb9N77e2XMmT6+QSJ+7mRbHnhkGJ8jm4cZvWuj2Io7npOaeHQ3YHK+TiQpTnlbkjoOIpEwpY3XZA==} + engines: {node: '>= 18'} + dev: true + + /@nomicfoundation/edr-linux-x64-musl@0.4.0: + resolution: {integrity: sha512-3HFIJSXgyubOiaN4MWGXx2xhTnhwlJk0PiSYNf9+L/fjBtcRkb2nM910ZJHTvqCb6OT98cUnaKuAYdXIW2amgw==} + engines: {node: '>= 18'} + dev: true + + /@nomicfoundation/edr-win32-x64-msvc@0.4.0: + resolution: {integrity: sha512-CP4GsllEfXEz+lidcGYxKe5rDJ60TM5/blB5z/04ELVvw6/CK9eLcYeku7HV0jvV7VE6dADYKSdQyUkvd0El+A==} + engines: {node: '>= 18'} + dev: true + + /@nomicfoundation/edr@0.4.0: + resolution: {integrity: sha512-T96DMSogO8TCdbKKctvxfsDljbhFOUKWc9fHJhSeUh71EEho2qR4951LKQF7t7UWEzguVYh/idQr5L/E3QeaMw==} + engines: {node: '>= 18'} + dependencies: + '@nomicfoundation/edr-darwin-arm64': 0.4.0 + '@nomicfoundation/edr-darwin-x64': 0.4.0 + '@nomicfoundation/edr-linux-arm64-gnu': 0.4.0 + '@nomicfoundation/edr-linux-arm64-musl': 0.4.0 + '@nomicfoundation/edr-linux-x64-gnu': 0.4.0 + '@nomicfoundation/edr-linux-x64-musl': 0.4.0 + '@nomicfoundation/edr-win32-x64-msvc': 0.4.0 + dev: true + + /@nomicfoundation/ethereumjs-common@4.0.4: + resolution: {integrity: sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==} + dependencies: + '@nomicfoundation/ethereumjs-util': 9.0.4 + transitivePeerDependencies: + - c-kzg + dev: true + + /@nomicfoundation/ethereumjs-rlp@5.0.4: + resolution: {integrity: sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==} + engines: {node: '>=18'} + hasBin: true + dev: true + + /@nomicfoundation/ethereumjs-tx@5.0.4: + resolution: {integrity: sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==} + engines: {node: '>=18'} + peerDependencies: + c-kzg: ^2.1.2 + peerDependenciesMeta: + c-kzg: + optional: true + dependencies: + '@nomicfoundation/ethereumjs-common': 4.0.4 + '@nomicfoundation/ethereumjs-rlp': 5.0.4 + '@nomicfoundation/ethereumjs-util': 9.0.4 + ethereum-cryptography: 0.1.3 + dev: true + + /@nomicfoundation/ethereumjs-util@9.0.4: + resolution: {integrity: sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==} + engines: {node: '>=18'} + peerDependencies: + c-kzg: ^2.1.2 + peerDependenciesMeta: + c-kzg: + optional: true + dependencies: + '@nomicfoundation/ethereumjs-rlp': 5.0.4 + ethereum-cryptography: 0.1.3 + dev: true + + /@nomicfoundation/hardhat-ethers@3.0.6(ethers@6.13.0)(hardhat@2.22.5): + resolution: {integrity: sha512-/xzkFQAaHQhmIAYOQmvHBPwL+NkwLzT9gRZBsgWUYeV+E6pzXsBQsHfRYbAZ3XEYare+T7S+5Tg/1KDJgepSkA==} + peerDependencies: + ethers: ^6.1.0 + hardhat: ^2.0.0 + dependencies: + debug: 4.3.5 + ethers: 6.13.0 + hardhat: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + lodash.isequal: 4.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@nomicfoundation/hardhat-verify@2.0.8(hardhat@2.22.5): + resolution: {integrity: sha512-x/OYya7A2Kcz+3W/J78dyDHxr0ezU23DKTrRKfy5wDPCnePqnr79vm8EXqX3gYps6IjPBYyGPZ9K6E5BnrWx5Q==} + peerDependencies: + hardhat: ^2.0.4 + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/address': 5.7.0 + cbor: 8.1.0 + chalk: 2.4.2 + debug: 4.3.5 + hardhat: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + lodash.clonedeep: 4.5.0 + semver: 6.3.1 + table: 6.8.2 + undici: 5.28.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1: + resolution: {integrity: sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1: + resolution: {integrity: sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1: + resolution: {integrity: sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1: + resolution: {integrity: sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1: + resolution: {integrity: sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1: + resolution: {integrity: sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1: + resolution: {integrity: sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1: + resolution: {integrity: sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1: + resolution: {integrity: sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1: + resolution: {integrity: sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nomicfoundation/solidity-analyzer@0.1.1: + resolution: {integrity: sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==} + engines: {node: '>= 12'} + optionalDependencies: + '@nomicfoundation/solidity-analyzer-darwin-arm64': 0.1.1 + '@nomicfoundation/solidity-analyzer-darwin-x64': 0.1.1 + '@nomicfoundation/solidity-analyzer-freebsd-x64': 0.1.1 + '@nomicfoundation/solidity-analyzer-linux-arm64-gnu': 0.1.1 + '@nomicfoundation/solidity-analyzer-linux-arm64-musl': 0.1.1 + '@nomicfoundation/solidity-analyzer-linux-x64-gnu': 0.1.1 + '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.1 + '@nomicfoundation/solidity-analyzer-win32-arm64-msvc': 0.1.1 + '@nomicfoundation/solidity-analyzer-win32-ia32-msvc': 0.1.1 + '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.1 + dev: true + + /@nomiclabs/hardhat-docker@2.0.2: + resolution: {integrity: sha512-XgGEpRT3wlA1VslyB57zyAHV+oll8KnV1TjwnxxC1tpAL04/lbdwpdO5KxInVN8irMSepqFpsiSkqlcnvbE7Ng==} + dependencies: + dockerode: 2.5.8 + fs-extra: 7.0.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.22.5): + resolution: {integrity: sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ==} + deprecated: The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead + peerDependencies: + hardhat: ^2.0.4 + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/address': 5.7.0 + cbor: 8.1.0 + chalk: 2.4.2 + debug: 4.3.5 + fs-extra: 7.0.1 + hardhat: 2.22.5(ts-node@10.9.2)(typescript@4.9.5) + lodash: 4.17.21 + semver: 6.3.1 + table: 6.8.2 + undici: 5.28.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@openzeppelin/contracts-upgradeable@4.9.3: + resolution: {integrity: sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A==} + dev: false + + /@openzeppelin/contracts-upgradeable@4.9.6: + resolution: {integrity: sha512-m4iHazOsOCv1DgM7eD7GupTJ+NFVujRZt1wzddDPSVGpWdKq1SKkla5htKG7+IS4d2XOCtzkUNwRZ7Vq5aEUMA==} + dev: true + + /@openzeppelin/contracts-upgradeable@5.0.2(@openzeppelin/contracts@4.9.6): + resolution: {integrity: sha512-0MmkHSHiW2NRFiT9/r5Lu4eJq5UJ4/tzlOgYXNAIj/ONkQTVnz22pLxDvp4C4uZ9he7ZFvGn3Driptn1/iU7tQ==} + peerDependencies: + '@openzeppelin/contracts': 5.0.2 + dependencies: + '@openzeppelin/contracts': 4.9.6 + + /@openzeppelin/contracts@4.9.3: + resolution: {integrity: sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg==} + dev: false + + /@openzeppelin/contracts@4.9.6: + resolution: {integrity: sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==} + + /@openzeppelin/upgrades-core@1.33.1: + resolution: {integrity: sha512-YRxIRhTY1b+j7+NUUu8Uuem5ugxKexEMVd8dBRWNgWeoN1gS1OCrhgUg0ytL+54vzQ+SGWZDfNnzjVuI1Cj1Zw==} + hasBin: true + dependencies: + cbor: 9.0.2 + chalk: 4.1.2 + compare-versions: 6.1.0 + debug: 4.3.5 + ethereumjs-util: 7.1.5 + minimist: 1.2.8 + proper-lockfile: 4.1.2 + solidity-ast: 0.4.56 + transitivePeerDependencies: + - supports-color + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@scroll-tech/contracts@0.1.0: + resolution: {integrity: sha512-aBbDOc3WB/WveZdpJYcrfvMYMz7ZTEiW8M9XMJLba8p9FAR5KGYB/cV+8+EUsq3MKt7C1BfR+WnXoTVdvwIY6w==} + dev: false + + /@scure/base@1.1.6: + resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} + dev: true + + /@scure/bip32@1.1.5: + resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} + dependencies: + '@noble/hashes': 1.2.0 + '@noble/secp256k1': 1.7.1 + '@scure/base': 1.1.6 + dev: true + + /@scure/bip39@1.1.1: + resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} + dependencies: + '@noble/hashes': 1.2.0 + '@scure/base': 1.1.6 + dev: true + + /@sentry/core@5.30.0: + resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} + engines: {node: '>=6'} + dependencies: + '@sentry/hub': 5.30.0 + '@sentry/minimal': 5.30.0 + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + tslib: 1.14.1 + dev: true + + /@sentry/hub@5.30.0: + resolution: {integrity: sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==} + engines: {node: '>=6'} + dependencies: + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + tslib: 1.14.1 + dev: true + + /@sentry/minimal@5.30.0: + resolution: {integrity: sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==} + engines: {node: '>=6'} + dependencies: + '@sentry/hub': 5.30.0 + '@sentry/types': 5.30.0 + tslib: 1.14.1 + dev: true + + /@sentry/node@5.30.0: + resolution: {integrity: sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==} + engines: {node: '>=6'} + dependencies: + '@sentry/core': 5.30.0 + '@sentry/hub': 5.30.0 + '@sentry/tracing': 5.30.0 + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + cookie: 0.4.2 + https-proxy-agent: 5.0.1 + lru_map: 0.3.3 + tslib: 1.14.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@sentry/tracing@5.30.0: + resolution: {integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==} + engines: {node: '>=6'} + dependencies: + '@sentry/hub': 5.30.0 + '@sentry/minimal': 5.30.0 + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + tslib: 1.14.1 + dev: true + + /@sentry/types@5.30.0: + resolution: {integrity: sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==} + engines: {node: '>=6'} + dev: true + + /@sentry/utils@5.30.0: + resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} + engines: {node: '>=6'} + dependencies: + '@sentry/types': 5.30.0 + tslib: 1.14.1 + dev: true + + /@sinonjs/commons@2.0.0: + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers@11.2.2: + resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} + dependencies: + '@sinonjs/commons': 3.0.1 + dev: true + + /@sinonjs/samsam@8.0.0: + resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} + dependencies: + '@sinonjs/commons': 2.0.0 + lodash.get: 4.4.2 + type-detect: 4.0.8 + dev: true + + /@sinonjs/text-encoding@0.7.2: + resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} + dev: true + + /@ts-morph/common@0.22.0: + resolution: {integrity: sha512-HqNBuV/oIlMKdkLshXd1zKBqNQCsuPEsgQOkfFQ/eUKjRlwndXW1AjN9LVkBEIukm00gGXSRmfkl0Wv5VXLnlw==} + dependencies: + fast-glob: 3.3.2 + minimatch: 9.0.4 + mkdirp: 3.0.1 + path-browserify: 1.0.1 + dev: true + + /@tsconfig/node10@1.0.11: + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + + /@types/bn.js@4.11.6: + resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} + dependencies: + '@types/node': 20.14.1 + dev: true + + /@types/bn.js@5.1.5: + resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} + dependencies: + '@types/node': 20.14.1 + dev: true + + /@types/chai@4.3.16: + resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==} + dev: true + + /@types/is-ci@3.0.4: + resolution: {integrity: sha512-AkCYCmwlXeuH89DagDCzvCAyltI2v9lh3U3DqSg/GrBYoReAaWwxfXCqMx9UV5MajLZ4ZFwZzV4cABGIxk2XRw==} + dependencies: + ci-info: 3.9.0 + dev: false + + /@types/lru-cache@5.1.1: + resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} + dev: true + + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: false + + /@types/mocha@10.0.6: + resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + dev: true + + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + dev: false + + /@types/node@18.15.13: + resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} + + /@types/node@20.14.1: + resolution: {integrity: sha512-T2MzSGEu+ysB/FkWfqmhV3PLyQlowdptmmgD20C6QxsS8Fmv5SjpZ1ayXaEC0S21/h5UJ9iA6W/5vSNU5l00OA==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + dev: false + + /@types/pbkdf2@3.1.2: + resolution: {integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==} + dependencies: + '@types/node': 20.14.1 + dev: true + + /@types/secp256k1@4.0.6: + resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} + dependencies: + '@types/node': 20.14.1 + dev: true + + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: false + + /JSONStream@1.3.2: + resolution: {integrity: sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /adm-zip@0.4.16: + resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} + engines: {node: '>=0.3.0'} + dev: true + + /aes-js@4.0.0-beta.5: + resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv@8.15.0: + resolution: {integrity: sha512-15BTtQUOsSrmHCy+B4VnAiJAJxJ8IFgu6fcjFQF3jQYZ78nLSQthlFg4ehp+NLIyfvFgOlxNsjKIEhydtFPVHQ==} + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 2.3.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + dev: true + + /ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + dependencies: + string-width: 4.2.3 + dev: true + + /ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + dev: true + + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: false + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: false + + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: false + + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 + + /axios@1.7.2(debug@4.3.5): + resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + dependencies: + follow-redirects: 1.15.6(debug@4.3.5) + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /base-x@3.0.9: + resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: true + + /bech32@1.1.4: + resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} + dev: false + + /better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + dependencies: + is-windows: 1.0.2 + dev: false + + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + dev: true + + /bl@1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} + dependencies: + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /blakejs@1.2.1: + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + dev: true + + /bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + + /bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + /boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} + dependencies: + ansi-align: 3.0.1 + camelcase: 6.3.0 + chalk: 4.1.2 + cli-boxes: 2.2.1 + string-width: 4.2.3 + type-fest: 0.20.2 + widest-line: 3.1.0 + wrap-ansi: 7.0.0 + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.1.1 + + /breakword@1.0.6: + resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} + dependencies: + wcwidth: 1.0.1 + dev: false + + /brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + /browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + dev: true + + /browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.4 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + dependencies: + base-x: 3.0.9 + dev: true + + /bs58check@2.1.2: + resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} + dependencies: + bs58: 4.0.1 + create-hash: 1.2.0 + safe-buffer: 5.2.1 + dev: true + + /buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + dev: true + + /buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + dev: true + + /buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /bufio@1.2.1: + resolution: {integrity: sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA==} + engines: {node: '>=14.0.0'} + dev: false + + /buildcheck@0.0.6: + resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dev: true + optional: true + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: false + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: false + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /cbor@8.1.0: + resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} + engines: {node: '>=12.19'} + dependencies: + nofilter: 3.1.0 + dev: true + + /cbor@9.0.2: + resolution: {integrity: sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==} + engines: {node: '>=16'} + dependencies: + nofilter: 3.1.0 + dev: true + + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: false + + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: true + + /ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: true + + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + dev: false + + /cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + dev: true + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false + + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: false + + /code-block-writer@12.0.0: + resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /command-exists@1.2.9: + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + dev: true + + /commander@3.0.2: + resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} + dev: true + + /compare-versions@6.1.0: + resolution: {integrity: sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.8 + typedarray: 0.0.6 + dev: true + + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /cpu-features@0.0.10: + resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dependencies: + buildcheck: 0.0.6 + nan: 2.19.0 + dev: true + optional: true + + /create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + dependencies: + cipher-base: 1.0.4 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + dev: true + + /create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + dependencies: + cipher-base: 1.0.4 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + dev: true + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /csv-generate@3.4.3: + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + dev: false + + /csv-parse@4.16.3: + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + dev: false + + /csv-stringify@5.6.5: + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + dev: false + + /csv@5.5.3: + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} + dependencies: + csv-generate: 3.4.3 + csv-parse: 4.16.3 + csv-stringify: 5.6.5 + stream-transform: 2.1.3 + dev: false + + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + /dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + dev: false + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4(supports-color@8.1.1): + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 8.1.1 + dev: true + + /debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: false + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: false + + /decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + dev: true + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: false + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: false + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + dev: true + + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: false + + /docker-modem@1.0.9: + resolution: {integrity: sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw==} + engines: {node: '>= 0.8'} + dependencies: + JSONStream: 1.3.2 + debug: 3.2.7 + readable-stream: 1.0.34 + split-ca: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /docker-modem@5.0.3: + resolution: {integrity: sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg==} + engines: {node: '>= 8.0'} + dependencies: + debug: 4.3.5 + readable-stream: 3.6.2 + split-ca: 1.0.1 + ssh2: 1.15.0 + transitivePeerDependencies: + - supports-color + dev: true + + /dockerode@2.5.8: + resolution: {integrity: sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw==} + engines: {node: '>= 0.8'} + dependencies: + concat-stream: 1.6.2 + docker-modem: 1.0.9 + tar-fs: 1.16.3 + transitivePeerDependencies: + - supports-color + dev: true + + /dockerode@4.0.2: + resolution: {integrity: sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w==} + engines: {node: '>= 8.0'} + dependencies: + '@balena/dockerignore': 1.0.2 + docker-modem: 5.0.3 + tar-fs: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + dev: true + + /dotenv@8.6.0: + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} + engines: {node: '>=10'} + dev: false + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + /elliptic@6.5.5: + resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: false + + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.2 + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /ethereum-cryptography@0.1.3: + resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} + dependencies: + '@types/pbkdf2': 3.1.2 + '@types/secp256k1': 4.0.6 + blakejs: 1.2.1 + browserify-aes: 1.2.0 + bs58check: 2.1.2 + create-hash: 1.2.0 + create-hmac: 1.1.7 + hash.js: 1.1.7 + keccak: 3.0.4 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + scrypt-js: 3.0.1 + secp256k1: 4.0.3 + setimmediate: 1.0.5 + dev: true + + /ethereum-cryptography@1.2.0: + resolution: {integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==} + dependencies: + '@noble/hashes': 1.2.0 + '@noble/secp256k1': 1.7.1 + '@scure/bip32': 1.1.5 + '@scure/bip39': 1.1.1 + dev: true + + /ethereumjs-abi@0.6.8: + resolution: {integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==} + dependencies: + bn.js: 4.12.0 + ethereumjs-util: 6.2.1 + dev: true + + /ethereumjs-util@6.2.1: + resolution: {integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==} + dependencies: + '@types/bn.js': 4.11.6 + bn.js: 4.12.0 + create-hash: 1.2.0 + elliptic: 6.5.5 + ethereum-cryptography: 0.1.3 + ethjs-util: 0.1.6 + rlp: 2.2.7 + dev: true + + /ethereumjs-util@7.1.5: + resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} + engines: {node: '>=10.0.0'} + dependencies: + '@types/bn.js': 5.1.5 + bn.js: 5.2.1 + create-hash: 1.2.0 + ethereum-cryptography: 0.1.3 + rlp: 2.2.7 + dev: true + + /ethers@6.13.0: + resolution: {integrity: sha512-+yyQQQWEntY5UVbCv++guA14RRVFm1rSnO1GoLFdrK7/XRWMoktNgyG9UjwxrQqGBfGyFKknNZ81YpUS2emCgg==} + engines: {node: '>=14.0.0'} + dependencies: + '@adraffy/ens-normalize': 1.10.1 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@types/node': 18.15.13 + aes-js: 4.0.0-beta.5 + tslib: 2.4.0 + ws: 8.5.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + /ethjs-util@0.1.6: + resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} + engines: {node: '>=6.5.0', npm: '>=3'} + dependencies: + is-hex-prefixed: 1.0.0 + strip-hex-prefix: 1.0.0 + dev: true + + /evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + dev: true + + /extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + dev: false + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + + /fast-uri@2.3.0: + resolution: {integrity: sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==} + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + + /fill-keys@1.0.2: + resolution: {integrity: sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA==} + engines: {node: '>=0.10.0'} + dependencies: + is-object: 1.0.2 + merge-descriptors: 1.0.3 + dev: true + + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + dependencies: + micromatch: 4.0.7 + pkg-dir: 4.2.0 + dev: false + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + + /follow-redirects@1.15.6(debug@4.3.5): + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.5 + dev: true + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /fp-ts@1.19.3: + resolution: {integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==} + dev: true + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: true + + /fs-extra@0.30.0: + resolution: {integrity: sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 2.4.0 + klaw: 1.3.1 + path-is-absolute: 1.0.1 + rimraf: 2.7.1 + dev: true + + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob@10.4.1: + resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} + engines: {node: '>=16 || 14 >=14.18'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 3.2.3 + minimatch: 9.0.4 + minipass: 7.1.2 + path-scurry: 1.11.1 + dev: true + + /glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.0.1 + once: 1.4.0 + dev: true + + /globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: false + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: false + + /hardhat@2.22.5(ts-node@10.9.2)(typescript@4.9.5): + resolution: {integrity: sha512-9Zq+HonbXCSy6/a13GY1cgHglQRfh4qkzmj1tpPlhxJDwNVnhxlReV6K7hCWFKlOrV13EQwsdcD0rjcaQKWRZw==} + hasBin: true + peerDependencies: + ts-node: '*' + typescript: '*' + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + dependencies: + '@ethersproject/abi': 5.7.0 + '@metamask/eth-sig-util': 4.0.1 + '@nomicfoundation/edr': 0.4.0 + '@nomicfoundation/ethereumjs-common': 4.0.4 + '@nomicfoundation/ethereumjs-tx': 5.0.4 + '@nomicfoundation/ethereumjs-util': 9.0.4 + '@nomicfoundation/solidity-analyzer': 0.1.1 + '@sentry/node': 5.30.0 + '@types/bn.js': 5.1.5 + '@types/lru-cache': 5.1.1 + adm-zip: 0.4.16 + aggregate-error: 3.1.0 + ansi-escapes: 4.3.2 + boxen: 5.1.2 + chalk: 2.4.2 + chokidar: 3.6.0 + ci-info: 2.0.0 + debug: 4.3.5 + enquirer: 2.4.1 + env-paths: 2.2.1 + ethereum-cryptography: 1.2.0 + ethereumjs-abi: 0.6.8 + find-up: 2.1.0 + fp-ts: 1.19.3 + fs-extra: 7.0.1 + glob: 7.2.0 + immutable: 4.3.6 + io-ts: 1.10.4 + keccak: 3.0.4 + lodash: 4.17.21 + mnemonist: 0.38.5 + mocha: 10.4.0 + p-map: 4.0.0 + raw-body: 2.5.2 + resolve: 1.17.0 + semver: 6.3.1 + solc: 0.7.3(debug@4.3.5) + source-map-support: 0.5.21 + stacktrace-parser: 0.1.10 + ts-node: 10.9.2(@types/node@20.14.1)(typescript@4.9.5) + tsort: 0.0.1 + typescript: 4.9.5 + undici: 5.28.4 + uuid: 8.3.2 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - c-kzg + - supports-color + - utf-8-validate + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + + /hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + safe-buffer: 5.2.1 + dev: true + + /hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: false + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + dev: false + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: false + + /immutable@4.3.6: + resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + + /io-ts@1.10.4: + resolution: {integrity: sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==} + dependencies: + fp-ts: 1.19.3 + dev: true + + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.3.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.9.0 + dev: false + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.2 + + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-hex-prefixed@1.0.0: + resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} + engines: {node: '>=6.5.0', npm: '>=3'} + dev: true + + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-object@1.0.2: + resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: false + + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + + /is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + dependencies: + better-path-resolve: 1.0.0 + dev: false + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.15 + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.7 + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: false + + /isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /jackspeak@3.2.3: + resolution: {integrity: sha512-htOzIMPbpLid/Gq9/zaz9SfExABxqRe1sSCdxntlO/aMD6u0issZQiY25n2GKQUtJ02j7z5sfptlAOMpWWOmvw==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + + /js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: false + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /jsonfile@2.4.0: + resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: true + + /just-extend@6.2.0: + resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} + dev: true + + /keccak@3.0.4: + resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.8.1 + readable-stream: 3.6.2 + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: false + + /klaw@1.3.1: + resolution: {integrity: sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: false + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: false + + /locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + + /lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: true + + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: true + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: true + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: false + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + dependencies: + get-func-name: 2.0.2 + + /lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + engines: {node: 14 || >=16.14} + dev: true + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: false + + /lru_map@0.3.3: + resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} + dev: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: false + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: false + + /md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + dev: true + + /meow@6.1.1: + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 + dev: false + + /merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: false + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + /minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: false + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + + /mixme@0.5.10: + resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==} + engines: {node: '>= 8.0.0'} + dev: false + + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: true + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mnemonist@0.38.5: + resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} + dependencies: + obliterator: 2.0.4 + dev: true + + /mocha@10.4.0: + resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==} + engines: {node: '>= 14.0.0'} + hasBin: true + dependencies: + ansi-colors: 4.1.1 + browser-stdout: 1.3.1 + chokidar: 3.5.3 + debug: 4.3.4(supports-color@8.1.1) + diff: 5.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 8.1.0 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 5.0.1 + ms: 2.1.3 + serialize-javascript: 6.0.0 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 6.2.1 + yargs: 16.2.0 + yargs-parser: 20.2.4 + yargs-unparser: 2.0.0 + dev: true + + /module-not-found-error@1.0.1: + resolution: {integrity: sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /nan@2.19.0: + resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} + requiresBuild: true + dev: true + optional: true + + /nise@5.1.9: + resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} + dependencies: + '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers': 11.2.2 + '@sinonjs/text-encoding': 0.7.2 + just-extend: 6.2.0 + path-to-regexp: 6.2.2 + dev: true + + /node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + dev: true + + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + + /node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + hasBin: true + dev: true + + /nofilter@3.1.0: + resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} + engines: {node: '>=12.19'} + dev: true + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: false + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + /obliterator@2.0.4: + resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + /outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + dev: false + + /p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + dependencies: + p-map: 2.1.0 + dev: false + + /p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: false + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: false + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: false + + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: false + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.24.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: false + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + dependencies: + lru-cache: 10.2.2 + minipass: 7.1.2 + dev: true + + /path-to-regexp@6.2.2: + resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + /pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + dev: true + + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + dev: false + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: false + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: false + + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + /preferred-pm@3.1.3: + resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 + dev: false + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: false + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + dev: true + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: true + + /proxyquire@2.1.3: + resolution: {integrity: sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==} + dependencies: + fill-keys: 1.0.2 + module-not-found-error: 1.0.1 + resolve: 1.22.8 + dev: true + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + dev: false + + /pump@1.0.3: + resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: false + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: true + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: false + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: false + + /read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: false + + /readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: false + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: false + + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: false + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: false + + /resolve@1.17.0: + resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} + dependencies: + path-parse: 1.0.7 + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + dependencies: + glob: 7.2.0 + dev: true + + /ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + dev: true + + /rlp@2.2.7: + resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} + hasBin: true + dependencies: + bn.js: 5.2.1 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /scrypt-js@3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} + dev: true + + /secp256k1@4.0.3: + resolution: {integrity: sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dependencies: + elliptic: 6.5.5 + node-addon-api: 2.0.2 + node-gyp-build: 4.8.1 + dev: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + + /serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + dependencies: + randombytes: 2.1.0 + dev: true + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + dev: true + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: true + + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: false + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /sinon-chai@3.7.0(chai@4.4.1)(sinon@17.0.1): + resolution: {integrity: sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==} + peerDependencies: + chai: ^4.0.0 + sinon: '>=4.0.0' + dependencies: + chai: 4.4.1 + sinon: 17.0.1 + dev: true + + /sinon@17.0.1: + resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} + dependencies: + '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers': 11.2.2 + '@sinonjs/samsam': 8.0.0 + diff: 5.2.0 + nise: 5.1.9 + supports-color: 7.2.0 + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: false + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /smartwrap@2.0.2: + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + array.prototype.flat: 1.3.2 + breakword: 1.0.6 + grapheme-splitter: 1.0.4 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 15.4.1 + dev: false + + /solc@0.7.3(debug@4.3.5): + resolution: {integrity: sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==} + engines: {node: '>=8.0.0'} + hasBin: true + dependencies: + command-exists: 1.2.9 + commander: 3.0.2 + follow-redirects: 1.15.6(debug@4.3.5) + fs-extra: 0.30.0 + js-sha3: 0.8.0 + memorystream: 0.3.1 + require-from-string: 2.0.2 + semver: 5.7.2 + tmp: 0.0.33 + transitivePeerDependencies: + - debug + dev: true + + /solidity-ast@0.4.56: + resolution: {integrity: sha512-HgmsA/Gfklm/M8GFbCX/J1qkVH0spXHgALCNZ8fA8x5X+MFdn/8CP2gr5OVyXjXw6RZTPC/Sxl2RUDQOXyNMeA==} + dependencies: + array.prototype.findlast: 1.2.5 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /spawndamnit@2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + dependencies: + cross-spawn: 5.1.0 + signal-exit: 3.0.7 + dev: false + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.18 + dev: false + + /spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + dev: false + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.18 + dev: false + + /spdx-license-ids@3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + dev: false + + /split-ca@1.0.1: + resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: false + + /ssh2@1.15.0: + resolution: {integrity: sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==} + engines: {node: '>=10.16.0'} + requiresBuild: true + dependencies: + asn1: 0.2.6 + bcrypt-pbkdf: 1.0.2 + optionalDependencies: + cpu-features: 0.0.10 + nan: 2.19.0 + dev: true + + /stacktrace-parser@0.1.10: + resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} + engines: {node: '>=6'} + dependencies: + type-fest: 0.7.1 + dev: true + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true + + /stream-transform@2.1.3: + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + dependencies: + mixme: 0.5.10 + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + /string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: false + + /strip-hex-prefix@1.0.0: + resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} + engines: {node: '>=6.5.0', npm: '>=3'} + dependencies: + is-hex-prefixed: 1.0.0 + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: false + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /table@6.8.2: + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.15.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /tar-fs@1.16.3: + resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==} + dependencies: + chownr: 1.1.4 + mkdirp: 0.5.6 + pump: 1.0.3 + tar-stream: 1.6.2 + dev: true + + /tar-fs@2.0.1: + resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: true + + /tar-stream@1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} + engines: {node: '>= 0.8.0'} + dependencies: + bl: 1.2.3 + buffer-alloc: 1.2.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + readable-stream: 2.3.8 + to-buffer: 1.1.1 + xtend: 4.0.2 + dev: true + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + dev: false + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + + /to-buffer@1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: false + + /ts-morph@21.0.1: + resolution: {integrity: sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg==} + dependencies: + '@ts-morph/common': 0.22.0 + code-block-writer: 12.0.0 + dev: true + + /ts-node@10.9.2(@types/node@20.14.1)(typescript@4.9.5): + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.14.1 + acorn: 8.11.3 + acorn-walk: 8.3.2 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib@2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + + /tsort@0.0.1: + resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} + dev: true + + /tty-table@4.2.3: + resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} + engines: {node: '>=8.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + csv: 5.5.3 + kleur: 4.1.5 + smartwrap: 2.0.2 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 17.7.2 + dev: false + + /tweetnacl-util@0.15.1: + resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} + dev: true + + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: true + + /tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: false + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: false + + /type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: false + + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + + /typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + dev: true + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} + engines: {node: '>=14.0'} + dependencies: + '@fastify/busboy': 2.1.1 + dev: true + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: false + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: false + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: false + + /which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + dev: false + + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + dependencies: + string-width: 4.2.3 + dev: true + + /workerpool@6.2.1: + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + dev: true + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /ws@7.4.6: + resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /ws@8.5.0: + resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: false + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: false + + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: false + + /yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: false + + /yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + dev: true + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: false + + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.4 + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: false + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + /zksync-ethers@6.7.1(ethers@6.13.0): + resolution: {integrity: sha512-JBYxQLkA/jCFvZwjtKBecnlMy+0Mw3/q9xXjTfM4R6qspl/tKhCiKney61Q6hDkopm7x8SEq1gzH8HwzfZHHgw==} + engines: {node: '>=18.9.0'} + peerDependencies: + ethers: ^6.7.1 + dependencies: + ethers: 6.13.0 + dev: true diff --git a/packages/hardhat/zksync-hardhat/test/erc20/myerc20token.test.ts b/packages/hardhat/zksync-hardhat/test/erc20/myerc20token.test.ts new file mode 100644 index 00000000..e92eebdd --- /dev/null +++ b/packages/hardhat/zksync-hardhat/test/erc20/myerc20token.test.ts @@ -0,0 +1,50 @@ +import { expect } from 'chai'; +import { Contract, Wallet } from "zksync-ethers"; +import { getWallet, deployContract, LOCAL_RICH_WALLETS } from '../../deploy/utils'; +import * as ethers from "ethers"; + +describe("MyERC20Token", function () { + let tokenContract: Contract; + let ownerWallet: Wallet; + let userWallet: Wallet; + + before(async function () { + ownerWallet = getWallet(LOCAL_RICH_WALLETS[0].privateKey); + userWallet = getWallet(LOCAL_RICH_WALLETS[1].privateKey); + + tokenContract = await deployContract("MyERC20Token", [], { wallet: ownerWallet, silent: true }); + }); + + it("Should have correct initial supply", async function () { + const initialSupply = await tokenContract.totalSupply(); + expect(initialSupply).to.equal(BigInt("1000000000000000000000000")); // 1 million tokens with 18 decimals + }); + + it("Should allow owner to burn tokens", async function () { + const burnAmount = ethers.parseEther("10"); // Burn 10 tokens + const tx = await tokenContract.burn(burnAmount); + await tx.wait(); + const afterBurnSupply = await tokenContract.totalSupply(); + expect(afterBurnSupply).to.equal(BigInt("999990000000000000000000")); // 999,990 tokens remaining + }); + + it("Should allow user to transfer tokens", async function () { + const transferAmount = ethers.parseEther("50"); // Transfer 50 tokens + const tx = await tokenContract.transfer(userWallet.address, transferAmount); + await tx.wait(); + const userBalance = await tokenContract.balanceOf(userWallet.address); + expect(userBalance).to.equal(transferAmount); + }); + + it("Should fail when user tries to burn more tokens than they have", async function () { + const userTokenContract = new Contract(await tokenContract.getAddress(), tokenContract.interface, userWallet); + const burnAmount = ethers.parseEther("100"); // Try to burn 100 tokens + try { + await userTokenContract.burn(burnAmount); + expect.fail("Expected burn to revert, but it didn't"); + } catch (error) { + expect(error.message).to.include("burn amount exceeds balance"); + } + }); +}); + diff --git a/packages/hardhat/zksync-hardhat/test/greeter.test.ts b/packages/hardhat/zksync-hardhat/test/greeter.test.ts new file mode 100644 index 00000000..7120eda6 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/test/greeter.test.ts @@ -0,0 +1,21 @@ +import { expect } from 'chai'; +import { getWallet, deployContract, LOCAL_RICH_WALLETS } from '../deploy/utils'; + +describe('Greeter', function () { + it("Should return the new greeting once it's changed", async function () { + const wallet = getWallet(LOCAL_RICH_WALLETS[0].privateKey); + + const greeting = "Hello world!"; + const greeter = await deployContract("Greeter", [greeting], { wallet, silent: true }); + + expect(await greeter.greet()).to.eq(greeting); + + const newGreeting = "Hola, mundo!"; + const setGreetingTx = await greeter.setGreeting(newGreeting); + + // wait until the transaction is processed + await setGreetingTx.wait(); + + expect(await greeter.greet()).to.equal(newGreeting); + }); +}); diff --git a/packages/hardhat/zksync-hardhat/test/nft/mynft.test.ts b/packages/hardhat/zksync-hardhat/test/nft/mynft.test.ts new file mode 100644 index 00000000..59ac3583 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/test/nft/mynft.test.ts @@ -0,0 +1,52 @@ +import { expect } from 'chai'; +import { Contract, Wallet } from "zksync-ethers"; +import { getWallet, deployContract, LOCAL_RICH_WALLETS } from '../../deploy/utils'; + +describe("MyNFT", function () { + let nftContract: Contract; + let ownerWallet: Wallet; + let recipientWallet: Wallet; + + before(async function () { + ownerWallet = getWallet(LOCAL_RICH_WALLETS[0].privateKey); + recipientWallet = getWallet(LOCAL_RICH_WALLETS[1].privateKey); + + nftContract = await deployContract( + "MyNFT", + ["MyNFTName", "MNFT", "https://mybaseuri.com/token/"], + { wallet: ownerWallet, silent: true } + ); + }); + + it("Should mint a new NFT to the recipient", async function () { + const tx = await nftContract.mint(recipientWallet.address); + await tx.wait(); + const balance = await nftContract.balanceOf(recipientWallet.address); + expect(balance).to.equal(BigInt("1")); + }); + + it("Should have correct token URI after minting", async function () { + const tokenId = 1; // Assuming the first token minted has ID 1 + const tokenURI = await nftContract.tokenURI(tokenId); + expect(tokenURI).to.equal("https://mybaseuri.com/token/1"); + }); + + it("Should allow owner to mint multiple NFTs", async function () { + const tx1 = await nftContract.mint(recipientWallet.address); + await tx1.wait(); + const tx2 = await nftContract.mint(recipientWallet.address); + await tx2.wait(); + const balance = await nftContract.balanceOf(recipientWallet.address); + expect(balance).to.equal(BigInt("3")); // 1 initial nft + 2 minted + }); + + it("Should not allow non-owner to mint NFTs", async function () { + try { + const tx3 = await (nftContract.connect(recipientWallet) as Contract).mint(recipientWallet.address); + await tx3.wait(); + expect.fail("Expected mint to revert, but it didn't"); + } catch (error) { + expect(error.message).to.include("Ownable: caller is not the owner"); + } + }); +}); From e5efe3d34dfef361aa3c2081bd79285da4fa208a Mon Sep 17 00:00:00 2001 From: Jack Dishman Date: Thu, 6 Jun 2024 08:37:14 -0400 Subject: [PATCH 2/8] feat: compile and add subgraph config --- .../ContinuousVestingMerkleDistributor.json | 1584 ++++++++++++++++ ...inuousVestingMerkleDistributorFactory.json | 203 +++ .../TrancheVestingMerkleDistributor.json | 1621 +++++++++++++++++ ...rancheVestingMerkleDistributorFactory.json | 207 +++ .../FlatPriceSale_v_2_1.json | 987 ++++++++++ .../TrancheVestingMerkleDistributor.json | 4 +- ...rancheVestingMerkleDistributorFactory.json | 10 + .../hardhat/zksync-hardhat/hardhat.config.ts | 2 +- packages/subgraph/config.json | 56 + packages/subgraph/networks.json | 46 + packages/subgraph/package.json | 4 + 11 files changed, 4721 insertions(+), 3 deletions(-) create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json new file mode 100644 index 00000000..f4fb4a5f --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json @@ -0,0 +1,1584 @@ +{ + "sourceName": "contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol", + "contractName": "ContinuousVestingMerkleDistributor", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "int256", + "name": "amount", + "type": "int256" + } + ], + "name": "Adjust", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Claim", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "fromDelegate", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "toDelegate", + "type": "address" + } + ], + "name": "DelegateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + } + ], + "name": "DelegateVotesChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + } + ], + "name": "InitializeDistributionRecord", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "uri", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fractionDenominator", + "type": "uint256" + } + ], + "name": "InitializeDistributor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cliff", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "end", + "type": "uint256" + } + ], + "name": "SetContinuousVesting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint160", + "name": "maxDelayTime", + "type": "uint160" + } + ], + "name": "SetDelay", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + } + ], + "name": "SetMerkleRoot", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "name": "SetSweepRecipient", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "SetToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + } + ], + "name": "SetTotal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "string", + "name": "uri", + "type": "string" + } + ], + "name": "SetUri", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "voteFactor", + "type": "uint256" + } + ], + "name": "SetVoteFactor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepNative", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "int256", + "name": "amount", + "type": "int256" + } + ], + "name": "adjust", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint32", + "name": "pos", + "type": "uint32" + } + ], + "name": "checkpoints", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "fromBlock", + "type": "uint32" + }, + { + "internalType": "uint224", + "name": "votes", + "type": "uint224" + } + ], + "internalType": "struct ERC20Votes.Checkpoint", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "totalAmount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "merkleProof", + "type": "bytes32[]" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + } + ], + "name": "delegate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "delegateBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "delegates", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "distancePerSecond", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "getClaimableAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "getDistributionRecord", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "initialized", + "type": "bool" + }, + { + "internalType": "uint120", + "name": "total", + "type": "uint120" + }, + { + "internalType": "uint120", + "name": "claimed", + "type": "uint120" + } + ], + "internalType": "struct DistributionRecord", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getFairDelayTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFractionDenominator", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMerkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + } + ], + "name": "getPastTotalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + } + ], + "name": "getPastVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSweepRecipient", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "getVestedFraction", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getVestingConfig", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "getVoteFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_cliff", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "merkleProof", + "type": "bytes32[]" + } + ], + "name": "initializeDistributionRecord", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "maxDelayTime", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "numCheckpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "randomValue", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + } + ], + "name": "setMerkleRoot", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "_recipient", + "type": "address" + } + ], + "name": "setSweepRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + } + ], + "name": "setToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + } + ], + "name": "setTotal", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_uri", + "type": "string" + } + ], + "name": "setUri", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_cliff", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + } + ], + "name": "setVestingConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_voteFactor", + "type": "uint256" + } + ], + "name": "setVoteFactor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "sweepToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sweepToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "token", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "total", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x0004000000000002000e00000000000200000000030100190000006003300270000007960030019d0000079609300197000300000091035500020000000103550000000102200190000000230000c13d0000008005000039000000400050043f000000040290008c000015000000413d000000000201043b000000e002200270000007b30420009c000000680000213d000007e10420009c000000790000a13d000007e20420009c000000960000213d000007ee0420009c000001bf0000213d000007f40420009c0000044d0000213d000007f70420009c000006bd0000613d000007f80120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001c010000390000060d0000013d0000016001000039000000400010043f0000000001000416000000000101004b000015000000c13d0000001501000039000001600010043f0000079702000041000001800020043f000001a00010043f000001c00020043f0000000303000039000001e00030043f0000079801000041000002000010043f0000026001000039000000400010043f0000000101000039000b00000001001d000002200010043f0000079901000041000002400010043f000000000600041100000010016002100000079a01100197000000000200041a0000079b04200197000000000141019f000000000010041b00000796050000410000000001000414000007960410009c0000000001058019000000c0011002100000079c011001c700000010022002700000079d052001970000800d020000390000079e04000041000a00000006001d1e531e490000040f0000000101200190000015000000613d0000000b03000029000000000103041a0000079f011001970000000a02000029000000000121019f000000000013041b000002600020043f0000000001000414000007960210009c0000079601008041000000c001100210000007a0011001c70000800d02000039000007a1040000411e531e490000040f0000000101200190000015000000613d000001a00500043d000007a20150009c000000ff0000413d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000007b40420009c000000880000a13d000007b50420009c000000d80000213d000007c10420009c000001f00000213d000007c70420009c000004610000213d000007ca0120009c000006d30000613d000007cb0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000000101000039000008790000013d000007f90420009c000001100000a13d000007fa0420009c000001a00000213d000008000420009c000002930000213d000008030420009c000005290000613d000008040120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001701000039000008790000013d000007cc0420009c000001190000a13d000007cd0420009c000001ab0000213d000007d30420009c000002eb0000213d000007d60420009c000005620000613d000007d70220009c000015000000c13d0000000002000416000000440390008c000015000000413d000005190000013d000007e30420009c000002050000213d000007e90420009c000004900000213d000007ec0420009c000006d80000613d000007ed0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000002401100370000000000301043b000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d000a00000003001d0000000b0100002900000000001004350000000f01000039000900000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000008600320009c000000620000213d000000000101043b0000006003200039000000400030043f000000000301041a0000008001300270000008160110019700000040042000390000000000140435000000ff043001900000000001000019000000010100c0390000000001120436000000080230027000000816022001970000000000210435000000000204004b00000d130000c13d000000400100043d00000044021000390000086a0300004100000dc00000013d000007b60420009c000002110000213d000007bc0420009c000004a00000213d000007bf0420009c000006ee0000613d000007c00220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b00000000040200190000079d0220009c000015000000213d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000002401100370000000000301043b000a00000003001d0000000101000039000000000101041a0000079d021001970000000001040019000b00000001001d1e5318cf0000040f000000400100043d0000000a0200002900000000002104350000079602000041000000000300041400000a1d0000013d0000000504000039000000000104041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000000112004b0000021c0000613d0000087a0100004100000000001004350000002201000039000000040010043f0000087b0100004100001e5500010430000008050420009c000002540000a13d000008060420009c000003ea0000213d000008090420009c0000056f0000613d0000080a0120009c000005050000613d000015000000013d000007d80420009c0000025f0000a13d000007d90420009c000004080000213d000007dc0420009c0000058a0000613d000007dd0220009c000015000000c13d0000000002000416000001240490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000004402100370000000000402043b000007a40240009c000015000000213d0000002302400039000000000292004b000015000000813d0000000405400039000000000251034f000000000202043b000007a40620009c000000620000213d0000001f06200039000000200800008a000000000686016f0000003f06600039000000000686016f0000083c0760009c000000620000213d000a00000008001d0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000394004b000015000000213d0000002003500039000000000331034f0000001f0420018f0000000505200272000001540000613d00000000060000190000000507600210000000000873034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000014c0000413d000000000604004b000001630000613d0000000505500210000000000353034f0000000304400210000000a005500039000000000605043300000000064601cf000000000646022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000363019f0000000000350435000000a0022000390000000000020435000000e402100370000000000202043b000900000002001d0000079d0220009c000015000000213d0000010401100370000000000101043b000800000001001d0000079d0110009c000015000000213d000000000100041a000700000001001d0005ff000010019400000f690000c13d0000000701000029000000ff0110019000000000020000190000000102006039000c00000002001d00000000020004150000000c0220008a0006000500200218000000000101004b00000f6d0000c13d000001000100008a000000070110017f00000001011001bf000008400110019700000100011001bf000200000000001d000000000010041b00000002020003670000002403200370000000000303043b000700000003001d0000006403200370000000000303043b000400000003001d0000008403200370000000000303043b000500000003001d000000a403200370000000000303043b000300000003001d000000c402200370000000000202043b000600000002001d0000ff0001100190000010d00000c13d000000400100043d00000064021000390000085003000041000000000032043500000044021000390000085103000041000000000032043500000024021000390000002b03000039000008690000013d000007fb0420009c000002fd0000213d000007fe0120009c000005f70000613d000007ff0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d1e5317f00000040f000008410000013d000007ce0420009c000003ae0000213d000007d10420009c000005fe0000613d000007d20120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001b01000039000000000101041a0000001a02000039000000000202041a0000001903000039000000000303041a000000800030043f000000a00020043f000000c00010043f000008320100004100001e540001042e000007ef0420009c000004cc0000213d000007f20420009c000007210000613d000007f30120009c000015000000c13d0000000001000416000000000101004b000015000000c13d00000000010900191e53152b0000040f00000000060100190000000007020019000a00000007001d0000000008030019000900000008001d000800000004001d000700000005001d000000400100043d000b00000001001d0000002001100039000600000001001d0000000002060019000000000307001900000000040800191e531c520000040f0000000b030000290000000002310049000000200120008a000000000013043500000000010300191e53156a0000040f0000000b01000029000000000201043300000006010000291e531e140000040f000b00000001001d0000000003000031000000080100002900000007020000291e531c5a0000040f00000000020100190000000b010000291e531db20000040f0000000a0100002900000009020000291e531c820000040f000000000100001900001e540001042e000007c20420009c000004e00000213d000007c50420009c0000072e0000613d000007c60220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d1e53157d0000040f0000000b010000291e531df90000040f000000000100001900001e540001042e000007e40420009c000004e90000213d000007e70120009c000007460000613d000007e80120009c000015000000c13d0000000001000416000000000101004b000015000000c13d000000000100041a00000010011002700000087a0000013d000007b70420009c000004fa0000213d000007ba0420009c0000077b0000613d000007bb0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001601000039000008790000013d000000200130008c0000023e0000413d000800000003001d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d00000009050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000008010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000a040000290000023e0000813d000000000002041b0000000102200039000000000312004b0000023a0000413d0000001f0150008c0000050a0000a13d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000200200008a00000009060000290000000003260170000000000101043b000008be0000c13d0000002002000039000008c80000013d0000080b0420009c0000087e0000613d0000080c0420009c000005160000613d0000080d0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d00000014010000390000060d0000013d000007de0420009c0000089e0000613d000007df0420009c000005050000613d000007e00220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000201043b000000000302041a000000000103004b0000000001000019000008410000613d000b00000003001d000000000020043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b020000290000000001120019000000010110008a000000000101041a0000002001100270000008410000013d000008010420009c000006090000613d000008020220009c000015000000c13d0000000002000416000000840490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000002404100370000000000404043b000700000004001d0000079d0440009c000015000000213d0000004404100370000000000404043b000600000004001d0000006404100370000000000404043b000007a40540009c000015000000213d0000002305400039000000000595004b000015000000813d0000000405400039000000000151034f000000000101043b000b00000001001d000007a40110009c000015000000213d00000024014000390000000b030000290000000503300210000500000001001d000a00000003001d000800000013001d000000080190006b000015000000213d000000a00020043f00000007010000290000006001100210000000c00010043f0000000601000029000000d40010043f0000005401000039000000800010043f0000010001000039000000400010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000870011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000a020000290000003f022000390000087102200197000000400300043d0000000002230019000a00000003001d000000000332004b00000000030000190000000103004039000007a40420009c000000620000213d0000000103300190000000620000c13d000000400020043f0000000a020000290000000b040000290000000002420436000900000002001d0000000802000029000000000220007c000015000000213d0000000b0200006b00000f8f0000c13d0000001c02000039000000000202041a000500000002001d00000fbf0000013d000007d40420009c000006110000613d000007d50220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000302043b0000079d0230009c000015000000213d0000002401100370000000000201043b00000000010300191e531c270000040f000008410000013d000007fc0420009c000006310000613d000007fd0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000002401100370000000000101043b000800000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000086b0210009c000008600000813d000000080110006b000009bb0000813d0000000b0100002900000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000700000001001d000000000101041a000a00000001001d000000060110008c00000def0000413d0000000a050000290000008001500270000008560250009c0000000001054019000008560250009c0000008002000039000000000200401900000040032001bf000007a20410009c00000000020380190000004003100270000007a20410009c000000000103801900000020032001bf000008570410009c00000000020380190000002003100270000008570410009c000000000103801900000010032001bf000008580410009c00000000020380190000001003100270000008580410009c0000000001038019000001000310008c00000008022080390000000801108270000000100310008c00000004022080390000000401108270000000040310008c00000002022080390000000201108270000000010110008c00000001022020390000000101200270000000000215022f000000010110020f0000000001210019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001041002700000000a214000f9000000000214004b0000000004018019000b00000004001d0000000a0140006b0000065f0000413d0000000701000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d0000000b030000290000000a02300069000000000101043b0000000001210019000000000101041a0000079601100197000000080110006c0000135a0000a13d0000000003000019000a00000002001d0000000a0130006c00000df20000413d0000000a02000029000a00000002001d000000000102004b0000000001000019000008410000613d0000000701000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000a020000290000028e0000013d000007cf0420009c000006650000613d000007d00220009c000015000000c13d0000000002000416000000c40390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000004402100370000000000202043b000a00000002001d0000002402100370000000000202043b000900000002001d0000006401100370000000000101043b000800000001001d000000ff0110008c000015000000213d000700000005001d0000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000400200043d000000000101043b0000000a03000029000000000131004b00000b8f0000a13d00000044012000390000082f03000041000000000031043500000024012000390000001d030000390000000000310435000007ad0100004100000000001204350000000401200039000000200300003900000000003104350000079601000041000007960320009c0000000002018019000000400120021000000823011001c700001e5500010430000008070420009c000006890000613d000008080220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000000401100370000000000101043b0000001102000039000000000012041b000000800010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000829011001c70000800d020000390000000103000039000008800400004100000c8f0000013d000007da0420009c000006a60000613d000007db0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d000000000200041100000000002004350000000302000039000000200020043f0000002401100370000000000101043b000a00000001001d00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b020000290000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000501041a000000400100043d000007ad02000041000000000021043500000004021000390000002003000039000000000032043500000044021000390000079603000041000007960410009c0000000003014019000000240410003900000040033002100000000a0550006c00000c010000813d0000002505000039000000000054043500000837040000410000000000420435000000640110003900000838020000410000000000210435000007b0013001c700001e5500010430000007f50420009c000007980000613d000007f60220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000b01000039000000200010043f000000400200003900000000010000191e531e140000040f000008790000013d000007c80420009c000007bf0000613d000007c90220009c000015000000c13d0000000002000416000000e40390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000002402100370000000000202043b000a00000002001d0000079d0220009c000015000000213d0000006402100370000000000202043b000900000002001d0000008401100370000000000101043b000800000001001d000000ff0110008c000015000000213d000700000005001d0000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000090110006c00000d300000a13d000000400100043d000000440210003900000828030000410000055e0000013d000007ea0420009c000007d90000613d000007eb0220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000901000039000004db0000013d000007bd0420009c000007fc0000613d000007be0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000079d0320009c000015000000213d0000002401100370000000000101043b000b00000001001d000007960110009c000015000000213d000000c001000039000000400010043f000000800000043f000000a00000043f00000000002004350000000c01000039000000200010043f000000400200003900000000010000191e531e140000040f0000000b020000291e5315be0000040f1e5315d90000040f00000000210104340000079601100197000000400300043d00000000011304360000000002020433000008120220019700000000002104350000079601000041000007960230009c0000000003018019000000400130021000000813011001c700001e540001042e000007f00420009c0000081c0000613d000007f10220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000201000039000000200010043f000000400200003900000000010000191e531e140000040f0000060d0000013d000007c30420009c000008370000613d000007c40120009c000015000000c13d0000000001000416000000000101004b000015000000c13d00000012010000390000060d0000013d000007e50420009c000008490000613d000007e60120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000800b01000039000000040300003900000000040004150000000e0440008a000000050440021000000844020000411e531e2a0000040f000b00000001001d1e53189f0000040f0000082e0000013d000007b80120009c000008750000613d000007b90120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000000301000039000000800010043f0000080e0100004100001e540001042e0000000001000416000000000101004b000015000000c13d00000004010000390000060d0000013d000000000105004b00000000010000190000050e0000613d000001c00100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f000008d60000013d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0110009c000015000000213d000007ad01000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f0000082501000041000000c40010043f000008830100004100001e55000104300000000002000416000000640390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000079d0320009c000015000000213d0000002401100370000000000101043b0000079d0110009c000015000000213d00000000002004350000000301000039000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b00000000020004110000079d022001970000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000101041a000000010200008a000000000221004b00000a6e0000613d00000044020000390000000202200367000000000202043b000000000121004b00000a6e0000813d000000400100043d00000044021000390000087f03000041000000000032043500000024021000390000001d0300003900000c990000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d1e531da60000040f000000800010043f0000080e0100004100001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000501043b0000079d0150009c000015000000213d000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d000000000105004b000009d10000c13d000007ad01000041000000800010043f0000002001000039000000840010043f0000001301000039000000a40010043f0000088501000041000000c40010043f000008830100004100001e55000104300000000002000416000000240490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000502043b000007a40250009c000015000000213d0000002302500039000000000292004b000015000000813d0000000406500039000000000261034f000000000202043b000007a40420009c000000620000213d0000001f07200039000000200400008a000000000747016f0000003f07700039000000000747016f0000083c0870009c000000620000213d0000008007700039000000400070043f000000800020043f00000000052500190000002405500039000000000395004b000015000000213d0000002003600039000000000131034f0000001f0320018f0000000505200272000005b70000613d00000000060000190000000507600210000000000871034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b000005af0000413d000000000603004b000005c60000613d0000000505500210000000000151034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f0000000000150435000000a0012000390000000000010435000000000100041a00000010011002700000079d011001970000000002000411000000000121004b00000dbd0000c13d000000800200043d000007a40120009c000000620000213d0000001301000039000000000501041a000000010350019000000001065002700000007f0360018f000000000306c0190000001f0630008c00000000060000190000000106002039000000000565013f00000001055001900000010a0000c13d000000200530008c000005ef0000413d0000001f05200039000000050550027000000814065000410000081405000041000000200720008c000000000506801900000000001004350000001f0330003900000005033002700000081403300041000000000635004b000005ef0000813d000000000005041b0000000105500039000000000635004b000005eb0000413d0000001f0320008c00000fcd0000a13d00000000001004350000000004420170000010010000c13d000000a00500003900000814030000410000100e0000013d0000000001000416000000000101004b000015000000c13d0000001201000039000000800010043f0000080e0100004100001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0110009c000015000000213d00000018010000390000060d0000013d0000000001000416000000000101004b000015000000c13d0000001101000039000000000101041a000000800010043f0000080e0100004100001e540001042e0000000001000416000000000101004b000015000000c13d000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d000008330100004100000000001004390000000001000410000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c70000800a020000391e531e4e0000040f0000000102200190000014930000613d000000000901043b0000000102000039000000000302041a00000000010004140000079d04300197000000040340008c000009bf0000c13d000000010100003100000c7c0000013d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d000000000100041100000000001004350000000301000039000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b020000290000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000101041a000000010200008a000000000121013f00000024020000390000000202200367000000000202043b000000000112004b00000a6e0000a13d0000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e55000104300000000002000416000000640390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000004402100370000000000202043b0000002403100370000000000303043b0000000401100370000000000101043b0000001904000039000000000014041b0000001a04000039000000000034041b0000001b04000039000000000024041b000000800010043f000000a00030043f000000c00020043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000830011001c70000800d020000390000000103000039000008310400004100000c8f0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d0000088101000041000000800010043f0000000001000410000000840010043f00000000010004140000000b02000029000000040320008c000009e00000c13d0000000103000031000000200130008c0000000004030019000000200400803900000a0b0000013d0000000001000416000000000101004b000015000000c13d000000e001000039000000400010043f0000002401000039000000800010043f0000083901000041000000a00010043f0000083a01000041000000c00010043f0000002001000039000000e00010043f000000800100003900000100020000391e5315020000040f000000e00110008a0000079602000041000007960310009c000000000102801900000060011002100000083b011001c700001e540001042e0000000002000416000000240490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000302043b000000000200041a00000010022002700000079d022001970000000004000411000000000242004b000007f30000c13d0000000102000039000000000402041a00000000050004140000079d04400197000000040640008c000009450000c13d000000000191034f000000010800003100000a370000013d0000000001000416000000000101004b000015000000c13d0000001501000039000008790000013d0000000001000416000000000101004b000015000000c13d000000000100041a00000010021002700000079d022001970000000005000411000000000252004b000007f30000c13d0000079b01100197000000000010041b00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000079c011001c70000800d0200003900000003030000390000079e04000041000000000600001900000c8f0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d000000e002000039000b00000002001d000000400020043f000000800000043f000000a00000043f000000c00000043f00000000001004350000000f01000039000000200010043f000000400200003900000000010000191e531e140000040f000a00000001001d0000000b010000291e5315540000040f0000000a01000029000000000101041a000000ff021001900000000002000019000000010200c039000000e00020043f00000008031002700000081603300197000001000030043f00000080011002700000081601100197000001200010043f000000400100043d0000000002210436000001000300043d00000816033001970000000000320435000001200200043d0000081602200197000000400310003900000000002304350000079602000041000007960310009c0000000001028019000000400110021000000817011001c700001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000201043b0000079d0120009c000015000000213d00000000010004111e5315ec0000040f000000000100001900001e540001042e0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000079d0320009c000015000000213d0000002401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d00000000002004350000000301000039000000200010043f000000400200003900000000010000191e531e140000040f0000000b020000291e5315ad0000040f000000000101041a000008410000013d0000000001000416000000000101004b000015000000c13d0000081d0100004100000000001004390000000001000412000b00000001001d0000000400100443000000a001000039000000240010044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000400700043d000000000101043b000000ff0210008c0000092a0000c13d0000000704000039000000000304041a000000010530019000000001023002700000007f0120018f000000000102c0190000001f0210008c00000000020000190000000102002039000000000223013f00000001022001900000010a0000c13d0000000002170436000000000505004b00000c070000613d0000000000400435000000000301004b000000000300001900000c0d0000613d000007a50400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000513004b000007730000413d00000c0d0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d000000000201004b00000a2a0000c13d000007ad01000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000080f01000041000000c40010043f0000081001000041000000e40010043f000008110100004100001e55000104300000000001000416000000000101004b000015000000c13d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000400300043d000000000101043b0000086b0110009c000009350000413d00000064013000390000086d02000041000000000021043500000044013000390000086e020000410000000000210435000000240130003900000026020000390000000000210435000007ad0100004100000000001304350000000401300039000000200200003900000000002104350000079601000041000007960230009c00000000030180190000004001300210000007b0011001c700001e55000104300000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000000401100370000000000101043b0000001802000039000000000012041b000000800010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000829011001c70000800d0200003900000001030000390000082a0400004100000c8f0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000000401100370000000000101043b0000001c02000039000000000012041b000000800010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000829011001c70000800d020000390000000103000039000008490400004100000c8f0000013d000007ad01000041000000800010043f0000002001000039000000840010043f000000a40010043f0000085201000041000000c40010043f000008830100004100001e55000104300000000001000416000000000101004b000015000000c13d0000001303000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000010a0000c13d000000800010043f000000000404004b000009440000613d0000000000300435000000000201004b0000000002000019000009a80000613d00000814030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008140000413d000009a80000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000c01000039000000200010043f000000400200003900000000010000191e531e140000040f000000000101041a000b00000001001d1e5318b70000040f000000400100043d0000000b0200002900000000002104350000079602000041000007960310009c0000000001028019000000400110021000000818011001c700001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d1e531cfe0000040f000000400200043d00000000001204350000079601000041000007960320009c0000000002018019000000400120021000000818011001c700001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000008550210009c0000094e0000a13d000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300000000001000416000000000101004b000015000000c13d0000001001000039000000000101041a0000079d01100197000000800010043f0000080e0100004100001e540001042e0000000001000416000000000101004b000015000000c13d0000000503000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000010a0000c13d000000800010043f000000000404004b000009a20000613d0000000000300435000000000201004b0000000002000019000009a80000613d00000886030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008960000413d000009a80000013d0000000001000416000000000101004b000015000000c13d0000000603000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000010a0000c13d000000800010043f000000000404004b000009a20000613d0000000000300435000000000201004b0000000002000019000009a80000613d00000854030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008b60000413d000009a80000013d00000020020000390000000004000019000001a0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000008c00000413d000000000363004b000008d30000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001a0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000a04000029000000000014041b000001e00500043d000007a40150009c000000620000213d0000000604000039000000000104041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f00000001011001900000010a0000c13d000000200130008c000009080000413d000800000003001d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d00000009050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000008010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000a04000029000009080000813d000000000002041b0000000102200039000000000312004b000009040000413d0000001f0150008c0000091e0000a13d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000200200008a00000009060000290000000003260170000000000101043b00000a750000c13d000000200200003900000a7f0000013d000000000105004b0000000001000019000009220000613d000002000100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f00000a8d0000013d000000ff0210018f000000200320008c000009c80000413d0000085c0100004100000000001704350000079601000041000007960270009c000000000701801900000040017002100000085d011001c700001e55000104300000000001030019000a00000003001d1e53155f0000040f0000000a0300002900000020013000390000086c0200004100000000002104350000001d0100003900000000001304350000000002030019000000400100043d000b00000001001d1e5315150000040f0000000b04000029000009b10000013d000009a20000013d0000079601000041000007960250009c0000000005018019000000c001500210000000000203004b000b00000003001d00000a2d0000c13d000000000204001900000a300000013d0000000b07000029000000000117004b000009bb0000813d0000000d01000039000000000201041a000000060320008c00000c4c0000413d0000008003200270000008560420009c0000000003024019000008560420009c0000008004000039000000000400401900000040054001bf000007a20630009c00000000040580190000004005300270000007a20630009c000000000305801900000020054001bf000008570630009c00000000040580190000002005300270000008570630009c000000000305801900000010054001bf000008580630009c00000000040580190000001005300270000008580630009c0000000003058019000001000530008c00000008044080390000000803308270000000100530008c00000004044080390000000403308270000000040530008c00000002044080390000000203308270000000010330008c00000001044020390000000103400270000000000432022f000000010330020f0000000003430019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c000011d30000813d0000087a0100004100000000001004350000001201000039000000040010043f0000087b0100004100001e5500010430000001000300008a000000000232016f000000a00020043f000000000101004b0000002002000039000000000200601900000020022000390000008001000039000b00000001001d1e53156a0000040f000000400100043d000a00000001001d0000000b020000291e5315150000040f0000000a0400002900000000014100490000079602000041000007960310009c0000000001028019000007960340009c000000000402801900000040024002100000006001100210000000000121019f00001e540001042e000000400100043d00000044021000390000086f0300004100000a710000013d0000079602000041000007960310009c0000000001028019000000c001100210000000000209004b000b00000009001d00000c720000c13d000000000204001900000c760000013d0000085b0370009c000000620000213d0000004003700039000000400030043f00000020037000390000000000130435000a00000007001d000000000027043500000c1a0000013d0000001001000039000000000201041a0000079f02200197000000000252019f000000000021041b00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000079c011001c70000800d020000390000000203000039000008840400004100000c8f0000013d0000079604000041000007960310009c0000000001048019000000c00110021000000882011001c71e531e4e0000040f000000000301001900000060033002700000079603300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000009f80000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000009f00000413d000000000705004b00000a070000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000cd40000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000015000000413d0000000101000039000000000101041a000000800300043d000a00000003001d0000079d021001970000000b010000291e5318cf0000040f000000400100043d0000000a02000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d02000039000000020300003900000815040000410000000b0500002900000c8f0000013d1e5315950000040f000000000100001900001e540001042e0000079c011001c7000080090200003900000000050000191e531e490000040f0000000b03000029000300000001035500000000040100190000006004400270000107960040019d0000079608400197000000000408004b00000a400000c13d000000400100043d000000010220019000000c940000613d00000000003104350000079602000041000000000300041400000c840000013d000007a40480009c000000620000213d0000001f04800039000000200500008a000000000454016f0000003f04400039000000000454016f000000400500043d0000000004450019000000000654004b00000000060000190000000106004039000007a40740009c000000620000213d0000000106600190000000620000c13d000000400040043f0000001f0480018f0000000005850436000000050980027200000a5e0000613d000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000796004b00000a560000413d000000000604004b00000a390000613d0000000506900210000000000161034f00000000066500190000000304400210000000000506043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000016043500000a390000013d000000400100043d0000004402100039000008250300004100000000003204350000002402100039000000190300003900000c990000013d00000020020000390000000004000019000001e0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b00000a770000413d000000000363004b00000a8a0000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001e0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000a04000029000000000014041b000001600100043d000000200210008c00000ab40000413d000007a40210009c000000620000213d0000000702000039000000000402041a000000010340019000000001054002700000007f0350018f000000000305c0190000001f0530008c00000000050000190000000105002039000000000454013f00000001044001900000010a0000c13d000000200430008c00000aad0000413d0000001f033000390000000505300270000007a5035000410000001f041000390000000504400270000000000554004b00000aad0000813d000007a504400041000000000004041b0000000104400039000000000534004b00000aa90000413d0000000000200435000000200300008a000000000431017000000cf70000c13d0000018005000039000007a50300004100000d040000013d00000003021002100000010002200089000000010300008a00000000022301cf000000000301004b0000000002006019000001800300043d000000000223016f000000000212019f000001200020043f000002200200043d000000200320008c00000ae40000413d000007a40320009c000000620000213d0000000803000039000000000503041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f00000001055001900000010a0000c13d000000200540008c00000add0000413d0000001f044000390000000506400270000007a6046000410000001f052000390000000505500270000000000665004b00000add0000813d000007a605500041000000000005041b0000000105500039000000000645004b00000ad90000413d0000000000300435000000200400008a000000000542017000000dd30000c13d0000024006000039000007a60400004100000de00000013d00000003032002100000010003300089000000010400008a00000000033401cf000000000402004b0000000003006019000002400400043d000000000334016f000000000223019f000001400020043f00000796040000410000000002000414000007960320009c0000000002048019000007960310009c00000000010480190000006001100210000000c002200210000000000121019f000007a7011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000a00000001001d000000e00010043f000002200100043d0000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000006001100210000000c002200210000000000121019f000007a8011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000900000001001d000001000010043f000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000a00010043f000000400300043d0000008002300039000000000012043500000060013000390000000902000029000000000021043500000040013000390000000a020000290000000000210435000000a001000039000800000001001d0000000001130436000000a0023000390000000004000410000900000004001d0000000000420435000007ab020000410000000000210435000a00000003001d000007ac0230009c000000620000213d0000000a04000029000000c002400039000700000002001d000000400020043f0000079602000041000007960310009c000000000102801900000040011002100000000003040433000007960430009c00000000030280190000006003300210000000000113019f0000000003000414000007960430009c0000000003028019000000c002300210000000000112019f0000079c011001c700008010020000391e531e4e0000040f00000001022001900000000b03000029000015000000613d000000000101043b000000800010043f0000000902000029000000c00020043f0000000e02000039000000000032041b000000000200041a0000ff000320019000000fd90000c13d000000ff0320018f000000ff0330008c00000b700000613d000000ff012001bf000000000010041b000000ff01000039000000400200043d000000000012043500000796010000410000000003000414000007960430009c0000000003018019000007960420009c00000000020180190000004001200210000000c002300210000000000121019f000007a3011001c70000800d020000390000000103000039000007b1040000411e531e490000040f0000000101200190000015000000613d000000c00100043d000900000001001d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a0001004430000004001000039000001c0001004430000000901000029000001e0001004430000006001000039000000e00300043d000002000010044300000220003004430000008001000039000001000300043d00000240001004430000026000300443000001200100043d00000008030000290000028000300443000002a000100443000000c001000039000001400300043d000002c000100443000002e000300443000001000020044300000007010000390000012000100443000007b20100004100001e540001042e0000008001200039000000000031043500000060012000390000000903000029000000000031043500000040012000390000000b030000290000000000310435000000070100002900000000011204360000082b0300004100000000003104350000082c0320009c000000620000213d000000a003200039000000400030043f0000079604000041000007960310009c000000000104801900000040011002100000000002020433000007960320009c00000000020480190000006002200210000000000112019f00000002020003670000008403200370000000000303043b000600000003001d000000a402200370000000000202043b000a00000002001d0000000002000414000007960320009c0000000002048019000000c002200210000000000112019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000400000001001d0000081d0100004100000000001004390000000001000412000500000001001d0000000400100443000000400100003900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000079d011001970000000002000410000200000002001d000000000112004b00000edc0000c13d0000081d010000410000000000100439000000050100002900000004001004430000002001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000300000001001d000007a90100004100000000001004390000000001000414000007960210009c0000079601008041000000c001100210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000030110006c00000edc0000c13d0000081d01000041000000000010043900000005010000290000000400100443000000240000044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d00000f370000013d000000190100003900000000001404350000082501000041000000000012043500000823013001c700001e5500010430000001000400008a000000000343016f0000000000320435000000000101004b000000200300003900000000030060190000003f01300039000000200200008a000000000221016f0000000001720019000000000221004b00000000020000190000000102004039000007a40310009c000000620000213d0000000102200190000000620000c13d000a00000007001d000000400010043f0000081d0100004100000000001004390000000b010000290000000400100443000000c001000039000000240010044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000400200043d000000000101043b000000ff0310008c00000dc80000c13d0000000805000039000000000405041a000000010640019000000001034002700000007f0130018f000000000103c0190000001f0310008c00000000030000190000000103002039000000000334013f00000001033001900000000a080000290000010a0000c13d0000000003120436000000000606004b00000e5c0000613d0000000000500435000000000401004b000000000400001900000e620000613d000007a60500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b00000c440000413d00000e620000013d0000000003000019000000000423004b00000c680000813d000000010400008a00000c540000013d0000000002050019000000000523004b00000c680000813d000000000523016f000000000623013f00000001066002700000000005560019000000000665004b0000000006000019000000010600403900000001066001900000065f0000c13d00000000001004350000085906500041000000000606041a0000079606600197000000000676004b00000c510000213d000000000345004b0000065f0000613d0000000103500039000000000523004b00000c540000413d000000000302004b000000000300001900000c6f0000613d00000000001004350000085a01200041000000000101041a0000002003100270000000400100043d0000000000310435000008310000013d0000079c011001c70000800902000039000000000309001900000000050000191e531e490000040f0000000b0900002900030000000103550000006001100270000107960010019d0000079601100197000000000301004b00000ca50000c13d000000400100043d000000010220019000000c940000613d000000000091043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d02000039000000010300003900000836040000411e531e490000040f0000000101200190000015000000613d000000000100001900001e540001042e000000440210003900000835030000410000000000320435000000240210003900000010030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e5500010430000007a40310009c000000620000213d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000007a40630009c000000620000213d0000000105500190000000620000c13d000000400030043f0000001f0310018f00000000041404360000000305000367000000050110027200000cc40000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000cbc0000413d000000000603004b00000c7e0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f000000000031043500000c7e0000013d000000400200043d0000001f0430018f000000050530027200000ce10000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000cd90000413d000000000604004b00000cf00000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000079601000041000007960420009c000000000201801900000040012002100000006002300210000000000121019f00001e5500010430000007a50300004100000020060000390000000005000019000000000706001900000160067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b00000cfa0000413d0000018005700039000000000414004b00000d0e0000813d0000000304100210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010310021000000001033001bf000000000032041b000000ff0200003900000abd0000013d00000861020000410000000a06000029000000000306004b000000000300001900000000030240190000086104600197000000000504004b000000000200a019000008610440009c000000000203c019000000000202004b00000d220000c13d000000000206004b000800000006001d00000d260000c13d000008610260009c0000065f0000613d0000000a0200002900080000002000510000000802000029000008160220009c00000e2a0000413d000000400100043d0000004402100039000008690300004100000000003204350000002402100039000000180300003900000c990000013d0000000b0100002900000000001004350000000901000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000301041a0000000102300039000000000021041b00000002010003670000004402100370000000000402043b000000400200043d000000c00520003900000009060000290000000000650435000000a00520003900000000003504350000008003200039000000000043043500000060032000390000000a04000029000000000043043500000040032000390000000b04000029000000000043043500000020032000390000081b040000410000000000430435000000c00400003900000000004204350000081c0420009c000000620000213d000000e004200039000000400040043f0000079605000041000007960430009c000000000305801900000040033002100000000002020433000007960420009c00000000020580190000006002200210000000000232019f000000a403100370000000000303043b000900000003001d000000c401100370000000000101043b000a00000001001d0000000001000414000007960310009c0000000001058019000000c001100210000000000121019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000500000001001d0000081d0100004100000000001004390000000001000412000600000001001d0000000400100443000000400100003900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000079d011001970000000002000410000300000002001d000000000112004b000011060000c13d0000081d010000410000000000100439000000060100002900000004001004430000002001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000400000001001d000007a90100004100000000001004390000000001000414000007960210009c0000079601008041000000c001100210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000040110006c000011060000c13d0000081d01000041000000000010043900000006010000290000000400100443000000240000044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000011610000013d000000400100043d000000440210003900000852030000410000000000320435000007ad020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000c9e0000013d000000ff0310018f000000200430008c00000e1f0000413d0000085c0100004100000000001204350000079601000041000007960320009c000000000201801900000040012002100000085d011001c700001e5500010430000007a60400004100000020070000390000000006000019000000000807001900000220078000390000000007070433000000000074041b000000200780003900000001044000390000002006600039000000000956004b00000dd60000413d0000024006800039000000000525004b00000dea0000813d0000000305200210000000f80550018f000000010700008a000000000557022f000000000575013f0000000006060433000000000556016f000000000054041b000000010220021000000001022001bf000000000023041b000000ff0200003900000aed0000013d00000000030000190000000a0130006c0000039a0000813d000680100000003d0000000a0200002900000df90000013d00000000020300190000000903000029000000000123004b0000039b0000813d000000000123016f000a00000002001d000900000003001d000000000223013f00000001022002700000000003120019000000000123004b0000000001000019000000010100403900000001011001900000065f0000c13d000b00000003001d000000070100002900000000001004350000000001000414000007960210009c0000079601008041000000c001100210000007a3011001c700000006020000291e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b030000290000000001310019000000000101041a0000079601100197000000080110006c00000df50000213d000000010100008a000000000113004b0000065f0000613d00000001033000390000000a02000029000000000123004b00000df90000413d0000039b0000013d0000085b0420009c0000000a08000029000000620000213d0000004004200039000000400040043f000000200420003900000000001404350000000000320435000000400100043d000b00000001001d00000e700000013d000000010200008a00000861040000410000000a03000029000000000223004b000000000200001900000000020420190000086103300197000008610530009c00000000040080190000086103300167000008610330009c000000000402c0190000001102000039000000000302041a000000000404004b00000ed00000613d0000000801300029000000000331004b0000000003000019000000010300403900000001033001900000065f0000c13d000000000012041b0000000b0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a000000080320027000000816033001970000000803300029000008160430009c0000065f0000213d000008620220019700000008033002100000086303300197000000000223019f000000000021041b000010bd0000013d000001000500008a000000000454016f0000000000430435000000000101004b000000200400003900000000040060190000003f01400039000000200300008a000000000131016f0000000003210019000000000113004b00000000010000190000000101004039000b00000003001d000007a40330009c000000620000213d0000000101100190000000620000c13d0000000b01000029000000400010043f0000000b010000290000085e0110009c000000620000213d0000000b030000290000002001300039000600000001001d000000400010043f0000000000030435000000400500043d0000002001500039000000e00300003900000000003104350000085f0100004100000000001504350000000041080434000000e0035000390000000000130435000a00000005001d0000010003500039000000000501004b00000e8d0000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000615004b00000e860000413d000000000413001900000000000404350000001f011000390009002000000092000000090110017f00000000031300190000000a0400002900000000014300490000004004400039000000000014043500000000160204340000000005630436000000000206004b00000ea30000613d000000000200001900000000035200190000000004210019000000000404043300000000004304350000002002200039000000000362004b00000e9c0000413d000800000005001d000700000006001d00000000016500190000000000010435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000a040000290000008002400039000000000300041000000000003204350000006002400039000000000012043500000007010000290000001f01100039000000090110017f00000008011000290000000002410049000000c0034000390000000000230435000000a00240003900000000000204350000000b0200002900000000020204330000000001210436000000000302004b000009b00000613d00000000030000190000000605000029000000005405043400000000014104360000000103300039000000000423004b00000eca0000413d000009b00000013d000000080430006c00000ff60000813d000000400100043d00000064021000390000086603000041000000000032043500000044021000390000086703000041000000000032043500000024021000390000002703000039000008690000013d000000400100043d000300000001001d0000002002100039000007ab01000041000100000002001d00000000001204350000081d010000410000000000100439000000050100002900000004001004430000006001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000302000029000000400220003900000000001204350000081d01000041000000000010043900000005010000290000000400100443000000070100002900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000030200002900000060022000390000000000120435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000304000029000000a0024000390000000203000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000007ac0140009c000000620000213d0000000303000029000000c001300039000000400010043f00000796010000410000000104000029000007960240009c000000000401801900000040024002100000000003030433000007960430009c00000000030180190000006003300210000000000223019f0000000003000414000007960430009c0000000003018019000000c001300210000000000121019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000400200043d0000002203200039000000040400002900000000004304350000081f0300004100000000003204350000000203200039000000000013043500000796040000410000000001000414000007960310009c0000000001048019000007960320009c000707960000004500000000020480190000004002200210000000c001100210000000000112019f00000820011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000007960320009c00000007030000290000000003024019000700000003001d0000000a03000029000008210330009c000012b60000a13d000000640120003900000826030000410000000000310435000000440120003900000827030000410000000000310435000000240120003900000022030000390000000000310435000007ad01000041000000000012043500000004012000390000002002000039000000000021043500000007010000290000004001100210000007b0011001c700001e550001043000000000010004150000000d0110008a0006000500100218000d00000000001d0000083d0100004100000000001004390000000001000410000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c700008002020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000000101004b0000108c0000c13d0000000701000029000000ff0110018f000000010110008c0000000001000019000000010100603900000006020000290000000502200270000000000201001f0000108f0000c13d000001000100008a000000000200041a000000000112016f00000001011001bf000000050200006b000001800000613d000200010000003d000001830000013d00000002020003670000000a0300002900000005050000290000000806000029000000000452034f000000000404043b000000200330003900000000004304350000002005500039000000000465004b00000f930000413d0000001c02000039000000000202041a000500000002001d0000000a020000290000000002020433000000000202004b00000fbf0000613d000880100000003d0000000003000019000b00000003001d000000050230021000000009022000290000000002020433000000000321004b00000fad0000813d0000000000100435000000200020043f000000000100041400000fb00000013d0000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700000008020000291e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b0300002900000001033000390000000a020000290000000002020433000000000223004b00000fa30000413d000000050110006c00000fef0000c13d0000000e01000039000b00000001001d000000000101041a000000020110008c000010540000c13d000000400100043d00000044021000390000087e03000041000000000032043500000024021000390000001f0300003900000c990000013d000000000302004b000000000300001900000fd10000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000343016f0000000102200210000000000423019f0000101a0000013d000007ad01000041000000070400002900000000001404350000000a030000290000012401300039000007ae0200004100000000002104350000010401300039000007af020000410000000000210435000000e40130003900000027020000390000000000210435000000c401300039000000200200003900000000002104350000079601000041000007960240009c00000000040180190000004001400210000007b0011001c700001e5500010430000000400100043d00000044021000390000087203000041000000000032043500000024021000390000000d0300003900000c990000013d00000000010104330000081601100197000000080110006c000010990000813d000000400100043d00000064021000390000086403000041000000000032043500000044021000390000086503000041000010950000013d000008140300004100000020060000390000000005000019000000000706001900000080067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b000010040000413d000000a005700039000000000424004b000010180000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010220021000000001042001bf000000000041041b000000010540019000000001034002700000007f0230018f000000000203c0190000001f0320008c00000000030000190000000103002039000000000334013f00000001033001900000010a0000c13d000000400300043d000000000505004b000010350000613d0000000000100435000000000102004b000010380000613d000008140100004100000000040000190000000005340019000000000601041a000000000065043500000001011000390000002004400039000000000524004b0000102d0000413d000010380000013d000001000100008a000000000114016f00000000001304350000079604000041000007960130009c00000000030480190000004001300210000007960320009c00000000020480190000006002200210000000000112019f0000000002000414000007960320009c0000000002048019000000c002200210000000000112019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000501043b0000000001000414000007960210009c0000079601008041000000c0011002100000079c011001c70000800d020000390000000203000039000008530400004100000c8f0000013d00000002010000390000000b02000029000000000012041b00000007010000290000079d01100197000a00000001001d00000000001004350000000f01000039000900000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000603000029000808160030019b0000000102200190000015000000613d000000000101043b000000000101041a00000008011002700000081601100197000000080110006c000011e40000c13d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000101041a000000ff01100190000012430000c13d000000400100043d00000064021000390000087c03000041000000000032043500000044021000390000087d03000041000000000032043500000024021000390000002203000039000008690000013d00000006010000290000000501100270000000000100001f000000400100043d00000064021000390000083e03000041000000000032043500000044021000390000083f03000041000000000032043500000024021000390000002e03000039000008690000013d000000080130006a000000000012041b0000000b0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a00000008032002700000081603300197000000080330006a000008160430009c0000065f0000213d000008620220019700000008033002100000086303300197000000000223019f000000000021041b0000001001000039000000000101041a000000000200041a0000079d0110019700000010022002700000079d0220019700000008030000291e5318cf0000040f0000000b010000291e531a030000040f000000400100043d0000000a02000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d020000390000000203000039000008680400004100000a280000013d0000000103000039000000000103041a0000079f011001970000000802000029000000000121019f000000000013041b000000400100043d000000000021043500000796050000410000000002000414000007960420009c0000000002058019000007960410009c00000000010580190000004001100210000000c002200210000000000112019f000007a3011001c70000800d02000039000007a1040000411e531e490000040f0000000101200190000015000000613d00002710010000390000001802000039000100000002001d000000000012041b000000400200043d00000000001204350000000001000414000007960310009c00000796040000410000000001048019000007960320009c00000000020480190000004002200210000000c001100210000000000121019f000007a3011001c70000800d0200003900000001030000390000082a040000411e531e490000040f0000000101200190000015000000613d000000000100041a0000ff0001100190000001960000613d0000000b0100006b000012f80000c13d000000400100043d00000044021000390000084f0300004100000dc00000013d000000400100043d000400000001001d0000002002100039000007ab01000041000200000002001d00000000001204350000081d010000410000000000100439000000060100002900000004001004430000006001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000402000029000000400220003900000000001204350000081d01000041000000000010043900000006010000290000000400100443000000070100002900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000040200002900000060022000390000000000120435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000404000029000000a0024000390000000303000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000007ac0140009c000000620000213d0000000403000029000000c001300039000000400010043f00000796010000410000000204000029000007960240009c000000000401801900000040024002100000000003030433000007960430009c00000000030180190000006003300210000000000223019f0000000003000414000007960430009c0000000003018019000000c001300210000000000121019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000400200043d0000002203200039000000050400002900000000004304350000081f0300004100000000003204350000000203200039000000000013043500000796040000410000000001000414000007960310009c0000000001048019000007960320009c000707960000004500000000020480190000004002200210000000c001100210000000000112019f00000820011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000007960320009c00000007030000290000000003024019000700000003001d0000000a03000029000008210330009c00000f570000213d000000000101043b00000060032000390000000a0400002900000000004304350000004003200039000000090400002900000000004304350000002003200039000000080400002900000000004304350000000000120435000000000000043500000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000007020000290000004002200210000000000121019f00000822011001c700000001020000391e531e4e0000040f000000000301001900000060033002700000079603300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000011a90000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000011a20000413d000000000605004b000011b70000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013610000613d00000000010004330000079d02100198000012f40000613d000000400300043d000007ad0200004100000000002304350000000402300039000000200400003900000000004204350000000b0410014f00000044023000390000079601000041000007960530009c00000000010340190000002403300039000000400110021000000823011001c70000079d04400198000013810000c13d000000190400003900000000004304350000082503000041000000000032043500001e5500010430000000010330027000000000543200d9000000000543004b0000000003048019000000000432004b0000065f0000413d000000000010043500000000043200490000085903400041000000000303041a0000079603300197000000000373004b0000123d0000a13d000000000300001900000000020400190000000b0700002900000c4d0000013d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000600000002001d000008600220009c000000620000213d000000000101043b000000000101041a00000006030000290000006002300039000000400020043f00000020043000390000000802000029000500000004001d000000000024043500000001020000390000000000230435000000400230003900000080011002700000081601100197000400000002001d00000000001204350000000a0100002900000000001004350000000901000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d00000006020000290000000002020433000000000202004b000000000101043b000000000201041a0000087302200197000000010220c1bf0000000503000029000000000303043300000008033002100000086303300197000000000232019f0000000403000029000000000303043300000080033002100000087403300197000000000232019f000000000021041b000000400100043d000000080200002900000000002104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d02000039000000020300003900000875040000410000000a050000291e531e490000040f0000000101200190000015000000613d00000007010000291e531a030000040f000010700000013d000000010300008a000000000334004b0000000b070000290000065f0000613d000000010340003900000c4d0000013d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000008600320009c000000620000213d000000000101043b0000006003200039000000400030043f000000000101041a000000800310027000000816033001970000004004200039000600000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000081601100197000800000001001d00000000001204350000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000001502000039000000000202041a0000079d022001980000127e0000613d0000001703000039000000000303041a000000070330014f0000079d0330019700000000322300d9000000000321004b0000065f0000413d00000000012100490000001a02000039000000000202041a000000000221004b0000000002000019000012960000a13d0000001402000039000000000202041a0000001b03000039000000000303041a000000000431004b000012960000813d0000001904000039000000000404041a000000000541004b0000065f0000413d000000000541004900000000612500a9000000000602004b000012940000613d00000000622100d9000000000252004b0000065f0000c13d000000000243004900000000122100d900000008312000b9000000080300006b0000129c0000613d00000008431000fa000000000223004b0000065f0000c13d0000001402000039000000000202041a000000000302004b0000099c0000613d00000000212100d90000000602000029000000000202043300000816022001970000000002210049000000000112004b00000000010000190000000101002039000000000101004b000000000200c019000808160020019c0000141a0000c13d000000400100043d00000064021000390000087803000041000000000032043500000044021000390000087903000041000000000032043500000024021000390000002f03000039000008690000013d000000000101043b00000060032000390000000a0400002900000000004304350000004003200039000000060400002900000000004304350000002003200039000000080400002900000000004304350000000000120435000000000000043500000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000007020000290000004002200210000000000121019f00000822011001c700000001020000391e531e4e0000040f000000000301001900000060033002700000079603300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000012de0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000012d70000413d000000000605004b000012ec0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013010000613d0000000001000433000a00000001001d0000079d01100198000013420000c13d000000400100043d00000044021000390000082e0300004100000d2c0000013d000000070100006b000013110000c13d000000400100043d00000044021000390000084e0300004100000000003204350000002402100039000000170300003900000c990000013d000000400200043d0000001f0430018f00000005053002720000130e0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013060000413d000000000604004b00000cf00000613d00000ce30000013d0000001002000039000000000102041a0000079f011001970000000b011001af000000000012041b00000011030000390000000701000029000000000013041b000000800400043d000007a40140009c000000620000213d0000001301000039000000000601041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f00000001066001900000010a0000c13d000000200650008c0000133a0000413d0000001f06400039000000050660027000000814076000410000081406000041000000200840008c000000000607801900000000001004350000001f0550003900000005055002700000081405500041000000000756004b0000133a0000813d000000000006041b0000000106600039000000000756004b000013360000413d000000200540008c000013750000413d00000000001004350000000a07400180000013860000c13d00000020060000390000081405000041000013910000013d00000000001004350000000901000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a0000000103200039000000000031041b000000090120006b000013710000c13d0000000a010000290000000b020000291e5315ec0000040f000000000100001900001e540001042e000000010100008a000000000112004b0000065f0000613d00000001032000390000000a0130006c00000df20000413d0000039a0000013d000000400200043d0000001f0430018f00000005053002720000136e0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013660000413d000000000604004b00000cf00000613d00000ce30000013d000000400100043d00000044021000390000082d0300004100000a710000013d000000000504004b00000000060000190000139e0000613d0000000305400210000000010600008a000000000556022f000000000565013f000000a00600043d000000000556016f0000000104400210000000000645019f0000139e0000013d0000001e0400003900000000004304350000082403000041000000000032043500001e550001043000000814050000410000002006000039000000000800001900000080096000390000000009090433000000000095041b000000200660003900000001055000390000002008800039000000000978004b000013890000413d000000000747004b0000139c0000813d0000000307400210000000f80770018f000000010800008a000000000778022f000000000787013f00000080066000390000000006060433000000000676016f000000000065041b000000010440021000000001064001bf000000000061041b00000841040000410000001405000039000000000045041b000000000402041a000000000503041a000000400200043d000000200320003900000060070000390000000000730435000000010760019000000001086002700000007f0380018f000000000308c01900000000005204350000001f0530008c00000000050000190000000105002039000000000856013f0000079d0540019700000001048001900000010a0000c13d000000600420003900000000003404350000008004200039000000000707004b000013c70000613d0000000000100435000000000103004b0000000001000019000013cd0000613d000008140600004100000000010000190000000007410019000000000806041a000000000087043500000001066000390000002001100039000000000731004b000013bf0000413d000013cd0000013d000001000100008a000000000116016f0000000000140435000000000103004b000000200100003900000000010060190000004003200039000008410400004100000000004304350000079603000041000007960420009c000000000203801900000040022002100000008001100039000007960410009c00000000010380190000006001100210000000000121019f0000000002000414000007960420009c0000000002038019000000c002200210000000000121019f0000079c011001c70000800d02000039000000020300003900000842040000411e531e490000040f0000000101200190000015000000613d0000000601000029000b079d0010019b000000000100041a0000ff0001100190000001960000613d00000009010000290000079d011001980000001602000039000000000302041a0000079f03300197000000000313019f000000000032041b0000000002000019000013f40000613d0000079d321001290000001504000039000000000304041a0000079f03300197000000000223019f000a00000004001d000000000024041b000000400200043d000000000012043500000796010000410000000003000414000007960430009c0000000003018019000007960420009c00000000020180190000004001200210000000c002300210000000000112019f000007a3011001c70000800d02000039000000010300003900000843040000411e531e490000040f0000000101200190000015000000613d0000000a01000029000000000101041a0000079d011001980000145e0000c13d000000400100043d0000000503000029000000040230006b000014640000a13d00000044021000390000084d03000041000000000032043500000024021000390000001a0300003900000c990000013d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a000000800320027000000816033001970000000803300029000008160430009c0000065f0000213d000008760220019700000080033002100000087403300197000000000223019f000000000021041b0000001201000039000000000301041a0000000802300029000000000332004b0000000003000019000000010300403900000001033001900000065f0000c13d000000000021041b00000007010000291e531a030000040f0000001001000039000000000101041a0000079d01100197000000070200002900000008030000291e5318cf0000040f000000400100043d0000000802000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d02000039000000020300003900000877040000410000000a050000291e531e490000040f0000000101200190000015000000613d00000001010000390000000b02000029000000000012041b000000000100001900001e540001042e0000000b0100006b0000146d0000c13d000000400100043d00000044021000390000084603000041000014690000013d0000000303000029000000050230006b000014940000a13d00000044021000390000084c0300004100000000003204350000002402100039000000010300002900000c990000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000000201004b0000065f0000613d00000845020000410000000000200439000000010110008a000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000060110014f0000079d011001970000001702000039000000000302041a0000079f03300197000000000113019f000000000012041b000014100000013d000000000001042f0000000302000029000008470220009c000014a00000413d00000064021000390000084a03000041000000000032043500000044021000390000084b03000041000000000032043500000024021000390000002a03000039000008690000013d00000019020000390000000403000029000000000032041b0000001a020000390000000504000029000000000042041b0000001b020000390000000305000029000000000052041b0000004002100039000000000052043500000020021000390000000000420435000000000031043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f00000848011001c70000800d02000039000000010300003900000831040000411e531e490000040f0000000101200190000015000000613d000000000100041a0000ff0001100190000001960000613d0000001c010000390000000602000029000000000021041b000000400100043d000000000021043500000796040000410000000002000414000007960320009c0000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d020000390000000103000039000b00000003001d00000849040000411e531e490000040f0000000101200190000015000000613d000000080600002900000010016002100000079a01100197000000000200041a0000079b03200197000000000113019f000000000010041b0000000001000414000007960310009c0000079601008041000000c0011002100000079c011001c700000010022002700000079d052001970000800d0200003900000003030000390000079e040000411e531e490000040f0000000101200190000015000000613d000000020100006b00000c920000c13d000000000200041a0000084001200197000000000010041b000000400100043d0000000b03000029000000000031043500000796020000410000000005000414000007960450009c0000000005028019000007960410009c00000000010280190000004001100210000000c002500210000000000112019f000007a3011001c70000800d02000039000007b10400004100000c8f0000013d000000000100001900001e550001043000000000430104340000000001320436000000000203004b0000150e0000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000532004b000015070000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000020030000390000000004310436000000003202043400000000002404350000004001100039000000000402004b000015240000613d000000000400001900000000051400190000000006430019000000000606043300000000006504350000002004400039000000000524004b0000151d0000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d0000086102000041000000830310008c000000000300001900000000030220190000086104100197000000000504004b0000000002008019000008610440009c000000000203c019000000000202004b000015520000613d00000002040003670000000402400370000000000602043b0000002402400370000000000202043b0000079d0320009c000015520000213d0000004403400370000000000303043b0000006405400370000000000705043b000007a40570009c000015520000213d0000002305700039000000000515004b000015520000813d0000000405700039000000000454034f000000000504043b000007a40450009c000015520000213d000000050850021000000024047000390000000007840019000000000117004b000015520000213d0000000001060019000000000001042d000000000100001900001e5500010430000008870210009c000015590000813d0000006001100039000000400010043f000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000008880210009c000015640000813d0000004001100039000000400010043f000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000007a40310009c000015770000213d0000000102200190000015770000c13d000000400010043f000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000015840000c13d000000000001042d000000400100043d000000440210003900000852030000410000000000320435000007ad020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e550001043000000010021002100000079a02200197000000000300041a0000079b04300197000000000224019f000000000020041b00000796020000410000000004000414000007960540009c0000000004028019000000c0024002100000079d061001970000079c012001c700000010023002700000079d052001970000800d0200003900000003030000390000079e040000411e531e490000040f0000000101200190000015ab0000613d000000000001042d000000000100001900001e55000104300000079d022001970000000000200435000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015bc0000613d000000000101043b000000000001042d000000000100001900001e55000104300001000000000002000000000301041a000100000002001d000000000223004b000015d10000a13d000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015d70000613d000000000101043b0000000101100029000000000001042d0000087a0100004100000000001004350000003201000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e55000104300000000002010019000000400100043d000008880310009c000015e60000813d0000004003100039000000400030043f000000000202041a00000020031000390000002004200270000000000043043500000796022001970000000000210435000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300005000000000002000500000002001d0000079d01100197000200000001001d00000000001004350000000b01000039000300000001001d000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000016360000613d000000000101043b000000000101041a000400000001001d0000000201000039000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f00000004030000290004079d0030019b0000000102200190000016360000613d000000000101043b000000000101041a000100000001001d0000000301000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000016360000613d00000005020000290000079d07200197000000000101043b000000000201041a0000079f02200197000000000272019f000000000021041b0000000001000414000007960210009c0000079601008041000000c0011002100000079c011001c70000800d0200003900000004030000390000088904000041000000020500002900000004060000291e531e490000040f0000000101200190000016360000613d0000000401000029000000050200002900000001030000291e5316380000040f000000000001042d000000000100001900001e55000104300009000000000002000900000003001d0000079d031001970000079d01200197000700000001001d000800000003001d000000000113004b000017b20000613d000000090100006b000017b20000613d000000080100006b000016f40000613d000000080100002900000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000201043b000000000102041a000600000001001d000000000101004b000017dc0000613d000500000002001d000000000020043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000400200043d000008880320009c000017df0000813d000000000101043b0000004003200039000000400030043f000000060300002900030001003000920000000301100029000000000101041a0000079603100197000000000332043600000020041002700000000000430435000600000004001d000000090140006c000017ea0000413d0000000001020433000400000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000040300002900000796033001970000000102200190000017b50000613d000000000101043b0000086b0210009c000017b60000813d0000000604000029000000090240006a000000000113004b000400000002001d000016a30000c13d000008120120009c000017bd0000213d0000000501000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000301100029000000000201041a000007960220019700000004040000290000002003400210000000000232019f000000000021041b000016de0000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000017b50000613d000000000101043b000008550210009c000017b60000213d000008570210009c0000000403000029000017c70000813d0000088a0230009c000017bd0000813d000000400400043d0000085b0240009c000017df0000213d0000004002400039000000400020043f0000000001140436000300000001001d00000000003104350000000501000029000000000201041a000007a40120009c000017df0000213d000200000004001d000100000002001d00000001012000390000000502000029000000000012041b000000000020043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000101100029000000020200002900000000020204330000079602200197000000030300002900000000030304330000002003300210000000000223019f000000000021041b0000000404000029000000400100043d000000200210003900000000004204350000000602000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f0000081a011001c70000800d0200003900000002030000390000088b0400004100000008050000291e531e490000040f0000000101200190000017b30000613d000000070100006b000017b20000613d000000070100002900000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000301043b000000000203041a000000000102004b000800000003001d000017570000613d000600000002001d000000000030043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000400200043d0000085b0320009c000017df0000213d000000000101043b0000004003200039000000400030043f000000060300002900040001003000920000000401100029000000000101041a00000796031001970000000003320436000000200410027000000000004304350000000901400029000900000001001d000600000004001d000000000141004b000000000100001900000001010040390000000101100190000017ea0000c13d0000000001020433000500000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000050300002900000796033001970000000102200190000017b50000613d000000000101043b000008550210009c000017b60000213d000000000113004b000017610000c13d0000000901000029000008120110009c0000000801000029000017bd0000213d000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000401100029000000000201041a000007960220019700000009030000290000002003300210000000000232019f0000179a0000013d000000400100043d0000085b0210009c000017df0000213d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000600000000001d000017610000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000017b50000613d000000000101043b000008550210009c000017b60000213d000007960210009c0000000803000029000017c70000213d0000000902000029000008120220009c000017bd0000213d000000400400043d0000085b0240009c000017df0000213d0000004002400039000000400020043f00000000021404360000000901000029000500000002001d0000000000120435000000000203041a000007a40120009c000017df0000213d000400000004001d000300000002001d0000000101200039000000000013041b000000000030043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000301100029000000040200002900000000020204330000079602200197000000050300002900000000030304330000002003300210000000000223019f000000000021041b0000000604000029000000400100043d000000200210003900000009030000290000000000320435000000000041043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f0000081a011001c70000800d0200003900000002030000390000088b0400004100000007050000291e531e490000040f0000000101200190000017b30000613d000000000001042d000000000100001900001e5500010430000000000001042f000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e03000041000017cd0000013d000000400100043d00000064021000390000088c03000041000000000032043500000044021000390000088d03000041000000000032043500000024021000390000002703000039000017d00000013d000000400100043d00000064021000390000088e03000041000000000032043500000044021000390000088f030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000000400100043d0000085b0210009c000017e50000a13d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300000004002100039000000400020043f0000002002100039000000000002043500000000000104350000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e550001043000040000000000020000081d0100004100000000001004390000000001000412000300000001001d00000004001004430000004001000039000000240010044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b0000079d011001970000000002000410000200000002001d000000000112004b000018390000c13d0000081d010000410000000000100439000000030100002900000004001004430000002001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000400000001001d000007a90100004100000000001004390000000001000414000007960210009c0000079601008041000000c001100210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000000040110006c000018390000c13d0000081d01000041000000000010043900000003010000290000000400100443000000240000044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000000000001042d000000400100043d000400000001001d0000002002100039000007ab01000041000100000002001d00000000001204350000081d010000410000000000100439000000030100002900000004001004430000006001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b0000000402000029000000400220003900000000001204350000081d01000041000000000010043900000003010000290000000400100443000000800100003900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000000040200002900000060022000390000000000120435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b0000000404000029000000a0024000390000000203000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000008900140009c000018970000813d0000000403000029000000c001300039000000400010043f00000796010000410000000104000029000007960240009c000000000401801900000040024002100000000003030433000007960430009c00000000030180190000006003300210000000000223019f0000000003000414000007960430009c0000000003018019000000c001300210000000000121019f0000079c011001c700008010020000391e531e4e0000040f00000001022001900000189d0000613d000000000101043b000000000001042d000000000001042f0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e55000104300000086b0210009c000018a20000813d000000000001042d000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000008570210009c000018ba0000813d000000000001042d000000400100043d00000064021000390000088e03000041000000000032043500000044021000390000088f030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300005000000000002000000400400043d000000440540003900000000003504350000002003400039000008910500004100000000005304350000079d022001970000002405400039000000000025043500000044020000390000000000240435000008920240009c000019b60000813d0000079d021001970000008005400039000000400050043f000007ac0140009c000019b60000213d000000c001400039000000400010043f0000002001000039000300000001001d0000000000150435000000a0014000390000089306000041000000000061043500000000060404330000000001000414000000040420008c0000191f0000c13d0000000101000032000019600000613d000007a40210009c000019b60000213d0000001f02100039000000200300008a000000000232016f0000003f02200039000000000232016f000000400900043d0000000002290019000000000392004b00000000030000190000000103004039000007a40420009c000019b60000213d0000000103300190000019b60000c13d000000400020043f0000001f0210018f0000000003190436000000030400036700000005011002720000190f0000613d000000000500001900000005065002100000000007630019000000000664034f000000000606043b00000000006704350000000105500039000000000615004b000019070000413d000000000502004b000019610000613d0000000501100210000000000414034f00000000011300190000000302200210000000000301043300000000032301cf000000000323022f000000000404043b0000010002200089000000000424022f00000000022401cf000000000232019f0000000000210435000019610000013d000100000005001d0000079604000041000007960530009c00000000030480190000004003300210000007960560009c00000000060480190000006005600210000000000535019f000007960310009c0000000001048019000000c001100210000000000115019f000200000002001d1e531e490000040f000300000001035500000000030100190000006003300270000107960030019d0000079605300198000019790000613d0000001f0350003900000894033001970000003f033000390000089503300197000000400900043d0000000003390019000000000493004b00000000040000190000000104004039000007a40630009c000000020a000029000019b60000213d0000000104400190000019b60000c13d000000400030043f0000001f0450018f00000000035904360000000505500272000019500000613d000000000600001900000005076002100000000008730019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000019480000413d000000000604004b0000197c0000613d0000000505500210000000000151034f00000000055300190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000197c0000013d00000060090000390000000002000415000000050220008a00000005022002100000000001090433000000000301004b000019840000c13d000200000009001d0000083d0100004100000000001004390000000401000039000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c700008002020000391e531e4e0000040f0000000102200190000019e70000613d0000000002000415000000050220008a000019970000013d00000060090000390000008003000039000000020a00002900000000010904330000000102200190000019d30000613d0000000002000415000000040220008a0000000502200210000000000301004b000019870000613d0000000502200270000000000209001f000019a10000013d000200000009001d0000083d0100004100000000001004390000000400a0044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c700008002020000391e531e4e0000040f0000000102200190000019e70000613d0000000002000415000000040220008a0000000502200210000000000101043b000000000101004b0000000209000029000019e80000613d00000000010904330000000502200270000000000209001f000000000201004b000019b50000613d0000086102000041000000200310008c000000000300001900000000030240190000086101100197000000000401004b000000000200a019000008610110009c000000000203c019000000000102004b000019bc0000c13d00000020019000390000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000019bc0000c13d000000000101004b000019be0000613d000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e5500010430000000400100043d00000064021000390000089603000041000000000032043500000044021000390000089703000041000000000032043500000024021000390000002a030000390000000000320435000007ad0200004100000000002104350000000402100039000000030300002900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000000000201004b000019fa0000c13d000000400200043d000300000002001d000007ad010000410000000000120435000000040120003900000001020000291e5315150000040f000000030400002900000000014100490000079602000041000007960310009c0000000001028019000007960340009c000000000402801900000040024002100000006001100210000000000121019f00001e5500010430000000000001042f000000400100043d00000044021000390000089803000041000000000032043500000024021000390000001d030000390000000000320435000007ad0200004100000000002104350000000402100039000000030300002900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e55000104300000079602000041000007960410009c0000000001028019000007960430009c000000000302801900000040023002100000006001100210000000000121019f00001e550001043000050000000000020000079d01100197000500000001001d00000000001004350000000201000039000300000001001d000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000101041a000400000001001d000000050100002900000000001004350000000f01000039000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000400200043d000008870320009c00001be60000813d000000000101043b0000006003200039000000400030043f000000000301041a0000008001300270000008160110019700000040042000390000000000140435000000ff043001900000000004000019000000010400c0390000000004420436000000080230027000000816022001970000000000240435000000000312004b0000000003000019000000050500002900001a480000a13d0000000002120049000008990120009c00001c210000813d0000001801000039000000000301041a00000000412300a900000000422100d9000000000232004b00001c210000c13d0000001402000039000000000202041a000000000302004b00001bca0000613d00000000132100d90000000402000029000000000132004b00001ad70000a13d000200000003001d000000000105004b00001bd00000613d00000000005004350000000301000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d00000002030000290000000402300069000000000101043b000000000101041a000400000002001d000200000001001d000000000121004b00001bda0000413d000000050100002900000000001004350000000301000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d00000004030000290000000202300069000000000101043b000000000021041b0000000401000039000000000201041a0000000002320049000000000021041b000000400100043d00000000003104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d0200003900000003030000390000089a04000041000000050500002900000000060000191e531e490000040f000000010120019000001bb60000613d000000050100002900000000001004350000000b01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000101041a00000000000004350000089b02000041000000000202041a0000079d011001970000079d0220019700000004030000291e5316380000040f000000400100043d0000000d04000039000000000204041a000000000302004b00001be40000613d00000000004004350000085b0310009c00001be60000213d000200000004001d0000004003100039000000400030043f0000085a02200041000100000002001d000000000202041a0000079603200197000000000331043600000020042002700000000000430435000300000004001d000000040240006c00001c210000413d0000000001010433000500000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f00000005030000290000079603300197000000010220019000001bb80000613d000000000101043b000008550210009c00001bb90000213d0000000304000029000000040240006a000000000113004b00001b620000c13d000008120120009c000000020100002900001bc00000213d00000000001004350000002001200210000000010300002900001b5d0000013d000000000132004b00001b610000813d000000000105004b00001c010000613d00040000002300510000000403000039000000000203041a0000000401200029000000000221004b00000000020000190000000102004039000000010220019000001c210000c13d000200000003001d000000000013041b00000000005004350000000301000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d00000000003104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d0200003900000003030000390000089a04000041000000000500001900000005060000291e531e490000040f000000010120019000001bb60000613d0000000b01000039000000200010043f0000089b01000041000000000101041a000300000001001d0000000501000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000201041a00000003010000290000079d011001970000079d0220019700000004030000291e5316380000040f000000400100043d0000000202000029000000000202041a0000088a0220009c00001c130000813d0000000d04000039000000000204041a000000000302004b000500000004001d00001b830000613d00000000004004350000085b0310009c00001be60000213d0000004003100039000000400030043f0000085a02200041000200000002001d000000000202041a0000079603200197000000000331043600000020022002700000000000230435000400040020002d000000040220006b00000000020000190000000102004039000000010220019000001c210000c13d0000000001010433000300000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f00000003030000290000079603300197000000010220019000001bb80000613d000000000101043b0000086b0210009c00001bb90000813d000000000113004b000000050200002900001b8b0000c13d0000000401000029000008120110009c00001bc00000213d0000000000200435000000040100002900000020011002100000000203000029000000000203041a0000079602200197000000000112019f000000000013041b000000000001042d000500000002001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000010220019000001bb80000613d000000000101043b000008550210009c00001bb90000213d000007960210009c0000000205000029000000050400002900001bec0000213d000008120240009c00001bc00000213d000000400200043d0000085b0320009c00001be60000213d0000004003200039000000400030043f00000000031204360000000000430435000000000105041a000007a40410009c00001bab0000a13d00001be60000013d0000085b0210009c00001be60000213d0000004002100039000000400020043f00000020021000390000000000020435000000000001043500001b8b0000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000010220019000001bb80000613d000000000101043b000008550210009c00001bb90000213d000008570210009c000000050500002900001bec0000813d00000004020000290000088a0220009c00001bc00000813d000000400200043d0000085b0320009c00001be60000213d0000004003200039000000400030043f000000000312043600000004010000290000000000130435000000000105041a000007a40410009c00001be60000213d0000000104100039000000000045041b00000000005004350000000002020433000007960220019700000000030304330000002003300210000000000223019f0000085901100041000000000021041b000000000001042d000000000100001900001e5500010430000000000001042f000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e0300004100001bf20000013d000000400100043d00000064021000390000088c03000041000000000032043500000044021000390000088d0300004100000000003204350000002402100039000000270300003900001bf50000013d0000087a0100004100000000001004350000001201000039000000040010043f0000087b0100004100001e5500010430000000400100043d0000006402100039000008a10300004100000000003204350000004402100039000008a20300004100000000003204350000002402100039000000210300003900001bf50000013d000000400100043d00000064021000390000089f0300004100000000003204350000004402100039000008a00300004100000000003204350000002402100039000000220300003900001bf50000013d0000085b0210009c00001c1c0000a13d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000400100043d00000064021000390000088e03000041000000000032043500000044021000390000088f030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000000400100043d00000044021000390000089e03000041000000000032043500000024021000390000001f030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e550001043000000064021000390000089c03000041000000000032043500000044021000390000089d0300004100000000003204350000002402100039000000300300003900001bf50000013d0000004002100039000000400020043f0000002002100039000000000002043500000000000104350000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e55000104300000001503000039000000000303041a0000079d0330019800001c330000613d0000001704000039000000000404041a000000000114013f0000079d0110019700000000313100d9000000000312004b00001c4c0000413d00000000021200490000001a01000039000000000101041a000000000112004b000000000100001900001c4b0000a13d0000001401000039000000000101041a0000001b03000039000000000303041a000000000432004b00001c4b0000813d0000001904000039000000000404041a000000000542004b00001c4c0000413d000000000542004900000000621500a9000000000601004b00001c490000613d00000000611200d9000000000151004b00001c4c0000c13d000000000143004900000000211200d9000000000001042d0000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e55000104300000006003300210000000200510003900000000003504350000003403100039000000000043043500000000002104350000005401100039000000000001042d000007a20420009c00001c7a0000813d00000005052002100000003f045000390000087106400197000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000007a40860009c00001c7a0000213d000000010770019000001c7a0000c13d000000400060043f00000000002404350000000002150019000000000332004b00001c800000213d000000000312004b00001c780000a13d00000002030003670000000005040019000000000613034f000000000606043b000000200550003900000000006504350000002001100039000000000621004b00001c710000413d0000000001040019000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e55000104300007000000000002000700000002001d000008990220009c00001ce30000813d000400000001001d0000079d01100197000600000001001d00000000001004350000000f01000039000500000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001ce10000613d0000000603000029000000400400043d000008870240009c00001cf80000813d000000000101043b000000000101041a0000006002400039000000400020043f00000020054000390000000702000029000200000005001d000000000025043500000001020000390000000000240435000300000004001d000000400240003900000080011002700000081601100197000100000002001d000000000012043500000000003004350000000501000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001ce10000613d00000003020000290000000002020433000000000202004b000000000101043b000000000201041a0000087302200197000000010220c1bf0000000203000029000000000303043300000008033002100000086303300197000000000232019f0000000103000029000000000303043300000080033002100000087403300197000000000232019f000000000021041b000000400100043d000000070200002900000000002104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d020000390000000203000039000008750400004100000006050000291e531e490000040f000000010120019000001ce10000613d00000004010000291e531a030000040f000000000001042d000000000100001900001e5500010430000000400100043d0000006402100039000008a30300004100000000003204350000004402100039000008a403000041000000000032043500000024021000390000002c030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300003000000000002000100000001001d0000079d01100197000300000001001d00000000001004350000000f01000039000200000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001d7c0000613d000000000101043b000000000101041a000000ff0110019000001d840000613d000000030100002900000000001004350000000201000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001d7c0000613d000000400200043d000008870320009c00001d990000813d000000000101043b0000006003200039000000400030043f000000000101041a000000800310027000000816033001970000004004200039000200000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000081601100197000300000001001d00000000001204350000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000010220019000001d9f0000613d000000000201043b0000001501000039000000000101041a0000079d01100198000000030800002900001d500000613d0000001703000039000000000303041a000000010330014f0000079d0330019700000000311300d9000000000312004b00001d7e0000413d00000000021200490000001a01000039000000000101041a000000000112004b0000001401000039000000000300001900001d680000a13d000000000301041a0000001b04000039000000000404041a000000000542004b00001d680000813d0000001905000039000000000505041a000000000652004b00001d7e0000413d000000000652004900000000723600a9000000000703004b00001d660000613d00000000733200d9000000000363004b00001d7e0000c13d000000000354004900000000233200d900000000428300a9000000000408004b00001d6e0000613d00000000548200d9000000000334004b00001d7e0000c13d000000000101041a000000000301004b00001da00000613d00000000121200d90000000201000029000000000101043300000816011001970000000001120049000000000221004b00000000020000190000000102002039000000000202004b000000000100c019000000000001042d000000000100001900001e55000104300000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e5500010430000000400100043d00000064021000390000087c03000041000000000032043500000044021000390000087d030000410000000000320435000000240210003900000022030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000001042f0000087a0100004100000000001004350000001201000039000000040010043f0000087b0100004100001e55000104300000001502000039000000000202041a0000079d0220019800001db00000613d0000001703000039000000000303041a000000000113013f0000079d0110019700000000212100d9000000000001042d0000000001000019000000000001042d000500000000000200000000030200190000001c02000039000000000202041a000100000002001d000300000003001d0000000032030434000400000003001d000000000202004b00001de20000613d000280100000003d0000000003000019000500000003001d000000050230021000000004022000290000000002020433000000000321004b00001dd00000813d0000000000100435000000200020043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700000002020000291e531e4e0000040f000000010220019000001de50000613d00001ddb0000013d0000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001de50000613d0000000503000029000000000101043b000000010330003900000003020000290000000002020433000000000223004b00001dbe0000413d000000010110006c00001de70000c13d000000000001042d000000000100001900001e5500010430000000400100043d00000044021000390000087203000041000000000032043500000024021000390000000d030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e55000104300000079d011001970000000103000039000000000203041a0000079f02200197000000000212019f000000000023041b000000400200043d000000000012043500000796010000410000000004000414000007960540009c0000000004018019000007960520009c00000000020180190000004001200210000000c002400210000000000112019f000007a3011001c70000800d02000039000007a1040000411e531e490000040f000000010120019000001e110000613d000000000001042d000000000100001900001e5500010430000000000001042f0000079603000041000007960410009c00000000010380190000004001100210000007960420009c00000000020380190000006002200210000000000112019f0000000002000414000007960420009c0000000002038019000000c002200210000000000112019f0000079c011001c700008010020000391e531e4e0000040f000000010220019000001e280000613d000000000101043b000000000001042d000000000100001900001e550001043000000000050100190000000000200439000000050130008c00001e380000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000631004b00001e300000413d00000796010000410000000002000414000007960420009c0000000002018019000007960430009c00000000030180190000006001300210000000c002200210000000000112019f000008a5011001c700000000020500191e531e4e0000040f000000010220019000001e480000613d000000000101043b000000000001042d000000000001042f00001e4c002104210000000102000039000000000001042d0000000002000019000000000001042d00001e51002104230000000102000039000000000001042d0000000002000019000000000001042d00001e530000043200001e540001042e00001e55000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff496e7465726e616c20766f746520747261636b657200000000000000000000004956540000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff0000000000000000000000000000000000000000ffff0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000020000002600000000000000000ccdd1baf560d2682736fa25752c8ccc0c5fc4079b245b0acf7389776308d5b1f00000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3020000000000000000000000000000000000000000000180000000000000000002000000000000000000000000000000000000000000024000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b02000002000000000000000000000000000000040000000000000000000000008b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f000000000000000000000000000000000000000000000000ffffffffffffff3f08c379a000000000000000000000000000000000000000000000000000000000616c697a696e6700000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e69746900000000000000000000000000000000000000840000000000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249800000002000000000000000000000000000002000000010000000000000000000000000000000000000000000000000000000000000000000000000095d89b4000000000000000000000000000000000000000000000000000000000c6e8d98100000000000000000000000000000000000000000000000000000000e85858d800000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000fc0c546900000000000000000000000000000000000000000000000000000000fc0c546a00000000000000000000000000000000000000000000000000000000ffa1ad7400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f56c854700000000000000000000000000000000000000000000000000000000eac989f700000000000000000000000000000000000000000000000000000000eac989f800000000000000000000000000000000000000000000000000000000f1127ed800000000000000000000000000000000000000000000000000000000e85858d900000000000000000000000000000000000000000000000000000000e90a182f00000000000000000000000000000000000000000000000000000000dd62ed3d00000000000000000000000000000000000000000000000000000000e12f3a6000000000000000000000000000000000000000000000000000000000e12f3a6100000000000000000000000000000000000000000000000000000000e834a83400000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000de032f5800000000000000000000000000000000000000000000000000000000c955725400000000000000000000000000000000000000000000000000000000c955725500000000000000000000000000000000000000000000000000000000d505accf00000000000000000000000000000000000000000000000000000000c6e8d98200000000000000000000000000000000000000000000000000000000c78d598500000000000000000000000000000000000000000000000000000000a4ef1f7700000000000000000000000000000000000000000000000000000000bb22dcca00000000000000000000000000000000000000000000000000000000c32b132500000000000000000000000000000000000000000000000000000000c32b132600000000000000000000000000000000000000000000000000000000c3cda52000000000000000000000000000000000000000000000000000000000bb22dccb00000000000000000000000000000000000000000000000000000000bf38b5c800000000000000000000000000000000000000000000000000000000ab803a7500000000000000000000000000000000000000000000000000000000ab803a7600000000000000000000000000000000000000000000000000000000b6d8f79f00000000000000000000000000000000000000000000000000000000a4ef1f7800000000000000000000000000000000000000000000000000000000a9059cbb000000000000000000000000000000000000000000000000000000009b642de000000000000000000000000000000000000000000000000000000000a3f4df7d00000000000000000000000000000000000000000000000000000000a3f4df7e00000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000009b642de100000000000000000000000000000000000000000000000000000000a011c8cc0000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009a0e7d66000000000000000000000000000000000000000000000000000000009ab24eb0000000000000000000000000000000000000000000000000000000003cf3a02400000000000000000000000000000000000000000000000000000000715018a50000000000000000000000000000000000000000000000000000000084b0196d000000000000000000000000000000000000000000000000000000008e539e8b000000000000000000000000000000000000000000000000000000008e539e8c0000000000000000000000000000000000000000000000000000000091ddadf40000000000000000000000000000000000000000000000000000000084b0196e000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000007cb64758000000000000000000000000000000000000000000000000000000007cb64759000000000000000000000000000000000000000000000000000000007ecebe0000000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000075aa9bc6000000000000000000000000000000000000000000000000000000005c19a95b000000000000000000000000000000000000000000000000000000006fcfff44000000000000000000000000000000000000000000000000000000006fcfff450000000000000000000000000000000000000000000000000000000070a08231000000000000000000000000000000000000000000000000000000005c19a95c00000000000000000000000000000000000000000000000000000000684de1f5000000000000000000000000000000000000000000000000000000004bf5d7e8000000000000000000000000000000000000000000000000000000004bf5d7e900000000000000000000000000000000000000000000000000000000587cde1e000000000000000000000000000000000000000000000000000000003cf3a02500000000000000000000000000000000000000000000000000000000495906570000000000000000000000000000000000000000000000000000000023b872dc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000395093500000000000000000000000000000000000000000000000000000000039509351000000000000000000000000000000000000000000000000000000003a46b1a800000000000000000000000000000000000000000000000000000000313ce567000000000000000000000000000000000000000000000000000000003644e515000000000000000000000000000000000000000000000000000000002ddbd139000000000000000000000000000000000000000000000000000000002ddbd13a000000000000000000000000000000000000000000000000000000002e7ba6ef0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000276801ec00000000000000000000000000000000000000000000000000000000144fa6d6000000000000000000000000000000000000000000000000000000001be1955f000000000000000000000000000000000000000000000000000000001be19560000000000000000000000000000000000000000000000000000000001f8d1d5000000000000000000000000000000000000000000000000000000000144fa6d70000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000000000000000000000000000000000000f56b96c00000000000000000000000000000000000000200000008000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000004000000000000000000000000066de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090f4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d0000000000000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000000000000000000000000000000000000400000000000000000000000006e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9000000000000000000000000000000000000000000000000ffffffffffffff1f310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000190100000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000420000000000000000000000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a00000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000006400000000000000000000000045524332305065726d69743a20696e76616c6964207369676e6174757265000064697361626c656420666f7220766f74696e6720706f77657200000000000000756500000000000000000000000000000000000000000000000000000000000045434453413a20696e76616c6964207369676e6174757265202773272076616c45524332305065726d69743a206578706972656420646561646c696e6500000002000000000000000000000000000000000000200000008000000000000000006c339c0bee516a4df5d7074ba7a974856d609f83666e915aa4a0f90e06989dc5e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf000000000000000000000000000000000000000000000000ffffffffffffff5f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000045434453413a20696e76616c6964207369676e617475726500000000000000004552433230566f7465733a207369676e61747572652065787069726564000000020000000000000000000000000000000000006000000080000000000000000034ebbb9e095e6c8737f99dd9923fb97ec1ca3d25cb39225975a934dd8d7a31b400000000000000000000000000000000000000600000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000005472616e73666572206661696c65642e000000000000000000000000000000003b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f000000000000000000000000000000000000000000000000000000436f6e74696e756f757356657374696e674d65726b6c65496e697469616c697a61626c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c726561ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000000000000000000000000000000de0b6b3a7640000433127dedcff849792656a12f4a9dbc0efeb80df5cce6310f53481a93cd71c71dccb8d94a5bbd764ed844afa20f2581be18d3fa84b36855e86a8f0c9316cba7d42cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd180b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3492064656d616e64206d6f72652072616e646f6d6e657373000000000000000000000000000000000000000000000000000000000000000000000000f48657010200000000000000000000000000000000000060000000000000000000000000914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a46616e20312032313030290000000000000000000000000000000000000000000076657374696e6720656e6473206166746572203431303234343438303020284a76657374696e6720656e64206265666f726520636c696666000000000000000076657374696e6720636c696666206265666f72652073746172740000000000004469737472696275746f723a20746f74616c20697320300000000000000000004469737472696275746f723a20746f6b656e20697320616464726573732830296e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420694f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572d70c1392a974224e639e7a9607dcb2c766826aecfe2dc356f442ce0488b01e1ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000010000d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4000000000000000000000000000000000000000000000000ffffffffffffffbfb3512b0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff9f8000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000ff00000000000000000000000000000000ffffffffffffffffffffffffffffff006f6e5265636f726420746f74616c00000000000000000000000000000000000064656372656173652067726561746572207468616e20646973747269627574697220746f74616c0000000000000000000000000000000000000000000000000064656372656173652067726561746572207468616e206469737472696275746fd81661cef4e40e0f1f97384c033d606e4d6b570554fc3524568d8f9fc84c838861646a7573746d656e74203e206d61782075696e7431323000000000000000006d75737420696e697469616c697a65206265666f72652061646a757374696e6700000000000000000000000000000000000000000000000000010000000000006d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000382062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e20344552433230566f7465733a20667574757265206c6f6f6b7570000000000000000200000000000000000000000000000000000054000000a000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0696e76616c69642070726f6f6600000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000db598eb8e0a3d3d5c2e02e4cab1ee8b65bb20e48fc7b42f4c76272de4cdd2434ff000000000000000000000000000000ffffffffffffffffffffffffffffffff47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d46d61626c65207269676874206e6f7700000000000000000000000000000000004469737472696275746f723a206e6f206d6f726520746f6b656e7320636c61694e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000065640000000000000000000000000000000000000000000000000000000000004469737472696275746f723a20636c61696d206e6f7420696e697469616c697a5265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a20696e73756666696369656e7420616c6c6f77616e6365000000ac657d3615bd618ee537848e2b33acd2a9df67d4776485ab6922b0421d324d2970a082310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000000000000000000000000000000000000000064000000800000000000000000efc1fd16ea80a922086ee4e995739d59b025c1bcea6d1f67855747480c83214b746f6b656e206973206164647265737328302900000000000000000000000000036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0000000000000000000000000000000000000000000000000ffffffffffffffa0000000000000000000000000000000000000000000000000ffffffffffffffc03134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f0000000100000000000000000000000000000000000000000000000000000000dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724323420626974730000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2032322062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2033000000000000000000000000000000000000000000000000ffffffffffffff40a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff805361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656400000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe06f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000000000000000000000000000000000000001000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76766572666c6f77696e6720766f746573000000000000000000000000000000004552433230566f7465733a20746f74616c20737570706c79207269736b73206f45524332303a206d696e7420746f20746865207a65726f206164647265737300636500000000000000000000000000000000000000000000000000000000000045524332303a206275726e20616d6f756e7420657863656564732062616c616e730000000000000000000000000000000000000000000000000000000000000045524332303a206275726e2066726f6d20746865207a65726f2061646472657375696e74313230292e6d617800000000000000000000000000000000000000004469737472696275746f723a20746f74616c416d6f756e74203e207479706528020000020000000000000000000000000000000000000000000000000000000054f32296fc7d5162be6c6559faf50933282ac43b7e5bad0a0471d7c6706ae34d", + "entries": [ + { + "constructorArgs": [], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xfb563bAAaB145Bd393b36a2a76E92A1712F41f8C", + "txHash": "0x30759644b23c4d6e5cf32e13188ef8c5136ee9c90757c81fcf67d3508dbdb373" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json new file mode 100644 index 00000000..3afb2268 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json @@ -0,0 +1,203 @@ +{ + "sourceName": "contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol", + "contractName": "ContinuousVestingMerkleDistributorFactory", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "distributor", + "type": "address" + } + ], + "name": "DistributorDeployed", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_cliff", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "deployDistributor", + "outputs": [ + { + "internalType": "contract ContinuousVestingMerkleDistributor", + "name": "distributor", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "distributors", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getImplementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_cliff", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_end", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "predictDistributorAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x0001000000000002000f000000000002000000000001035500000000030100190000006003300270000000d2033001970000000102200190000000260000c13d0000008002000039000000400020043f000000040230008c000001b90000413d000000000201043b000000e002200270000000d60420009c000000560000213d000000d90420009c0000008d0000613d000000da0220009c000001b90000c13d0000000002000416000000240330008c000001b90000413d000000000202004b000001b90000c13d0000000401100370000000000101043b000000000200041a000000000221004b000001b90000813d034202a20000040f0000000302200210000000000101041a000000000121022f000000d401100197000000ff0220008c0000000001002019000000850000013d0000000002000416000000000202004b000001b90000c13d0000001f02300039000000d302200197000000a002200039000000400020043f0000001f0230018f0000000504300272000000390000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000310000413d000000000502004b000000480000613d0000000504400210000000000141034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000200130008c000001b90000413d000000a00100043d000000d40210009c000001b90000213d000000800010043f000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000d501000041000003430001042e000000d70120009c000000b10000613d000000d80120009c000001b90000c13d0000000001000416000000000101004b000001b90000c13d0000000001030019034202350000040f034202af0000040f000000400400043d000b00000004001d0000003802400039000000000300041000000000003204350000002402400039000000db0300004100000000003204350000000002000412000d00000002001d000c00000000001d000a00000001001d0000800501000039000000440300003900000000040004150000000d0440008a0000000504400210000000dc020000410342031e0000040f0000000b030000290000001402300039000000000012043500000058013000390000000a020000290000000000210435000000dd0100004100000000001304350000000c013000390000003702000039034203080000040f0000000b030000290000007802300039000000000012043500000043013000390000005502000039034203080000040f000000d401100197000000400200043d0000000000120435000000d201000041000000d20320009c00000000020180190000004001200210000000de011001c7000003430001042e0000000002000416000001440430008c000001b90000413d000000000202004b000001b90000c13d0000000402100370000000000c02043b000000d402c0009c000001b90000213d0000002402100370000000000d02043b0000004402100370000000000402043b000000e00240009c000001b90000213d0000002302400039000000000232004b000001b90000813d0000000405400039000000000251034f000000000202043b000000e10620009c000000ab0000813d0000001f06200039000000200b00008a0000000006b6016f0000003f066000390000000006b6016f000000e20760009c000000c20000a13d000000f30100004100000000001004350000004101000039000000040010043f000000f40100004100000344000104300000000001000416000000000101004b000001b90000c13d0000000001000412000f00000001001d000e00000000001d0000800501000039000000440300003900000000040004150000000f0440008a0000000504400210000000dc020000410342031e0000040f000000d401100197000000800010043f000000df01000041000003430001042e0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000334004b000001b90000213d0000002003500039000000000331034f0000001f0420018f0000000505200272000000d70000613d00000000060000190000000507600210000000000873034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b000000cf0000413d000000000604004b000000e60000613d0000000505500210000000000353034f0000000304400210000000a005500039000000000605043300000000064601cf000000000646022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000363019f0000000000350435000000a0022000390000000000020435000000c402100370000000000602043b000000a402100370000000000502043b0000008402100370000000000f02043b0000006402100370000000000e02043b000000e402100370000000000302043b000000d40230009c000001b90000213d0000010402100370000000000402043b000000d40240009c000001b90000213d000a00000006001d000b00000005001d0000012401100370000000000601043b000000400100043d00000060021000390000014005000039000000000052043500000040021000390000000000d2043500000020021000390000000000c204350000016007100039000000800500043d00000000005704350000018007100039000000000805004b000001120000613d00000000080000190000000009780019000000a00a800039000000000a0a04330000000000a904350000002008800039000000000958004b0000010b0000413d0000000007750019000000000007043500000140071000390000000000670435000000e0061000390000000a070000290000000000760435000000c0061000390000000b070000290000000000760435000000a00610003900080000000f001d0000000000f60435000000800610003900090000000e001d0000000000e60435000000d4064001970000012004100039000700000006001d0000000000640435000000d4043001970000010003100039000600000004001d00000000004304350000001f035000390000000003b3016f000001600430003900000000004104350000019f033000390000000004b3016f0000000003140019000000000443004b00000000040000190000000104004039000000e00530009c000000ab0000213d0000000104400190000000ab0000c13d000000400030043f000000d204000041000000d20320009c000000000204801900000040022002100000000001010433000000d20310009c00000000010480190000006001100210000000000121019f0000000002000414000000d20320009c0000000002048019000000c002200210000000000112019f000000e3011001c7000080100200003900030000000b001d00050000000c001d00040000000d001d0342033d0000040f0000000102200190000001b90000613d000000000101043b000200000001001d000000dc0100004100000000001004390000000001000412000000040010044300000024000004430000000001000414000000d20210009c000000d201008041000000c001100210000000e4011001c700008005020000390342033d0000040f0000000102200190000001bb0000613d000000000101043b0000008802100270000000e502200197000000e6022001c700000000002004350000007801100210000000e7011001c7000000200010043f000000e8010000410000000002000414000000090010043f00000002010000290000000d0010043f00000060010000390000004d0010043f0000004d0100008a0000006d0010043f000000d203000041000000d20120009c0000000002038019000000c001200210000000e9011001c70000800602000039034203380000040f00000001022001900000017c0000613d000000000101043b000200d40010019c0000018d0000c13d000000400100043d0000004402100039000000f0030000410000000000320435000000240210003900000017030000390000000000320435000000f1020000410000000000210435000000040210003900000020030000390000000000320435000000d20210009c000000d2010080410000004001100210000000f2011001c70000034400010430000000000100041a000000e00210009c000000ab0000213d0000000102100039000000000020041b0000000000000435000000ea01100041000000000201041a000000eb022001970000000205000029000000000252019f000000000021041b000000d203000041000000400100043d000100000001001d0000000001000414000000d20210009c0000000001038019000000c001100210000000e3011001c70000800d020000390000000203000039000000ec04000041034203380000040f0000000101200190000001b90000613d000000ed010000410000000000100439000000020100002900000004001004430000000001000414000000d20210009c000000d201008041000000c001100210000000ee011001c700008002020000390342033d0000040f0000000102200190000001bb0000613d000000000101043b000000000101004b00000005030000290000000404000029000001bc0000c13d00000000010000190000034400010430000000000001042f000000010500002900000044015000390000012002000039000000000021043500000024015000390000000000410435000000ef010000410000000000150435000000040150003900000000003104350000012402500039000000800100043d00000000001204350000014402500039000000000301004b000001d40000613d00000000030000190000000004230019000000a005300039000000000505043300000000005404350000002003300039000000000413004b000001cd0000413d000000000221001900000000000204350000000104000029000001040240003900000007030000290000000000320435000000e40240003900000006030000290000000000320435000000c4024000390000000a030000290000000000320435000000a4024000390000000b03000029000000000032043500000084024000390000000803000029000000000032043500000064024000390000000903000029000000000032043500000000020004140000000203000029000000040330008c000002020000613d0000001f01100039000000030110017f000000d2030000410000000105000029000000d20450009c0000000004030019000000000405401900000040044002100000014401100039000000d20510009c00000000010380190000006001100210000000000141019f000000d20420009c0000000002038019000000c002200210000000000112019f0000000202000029034203380000040f00000001022001900000020f0000613d0000000101000029000000e00110009c000000ab0000213d0000000103000029000000400030043f00000002010000290000000000130435000000d201000041000000d20230009c00000000030180190000004001300210000000de011001c7000003430001042e000000400200043d000000000301001900000060033002700000001f0430018f000000d20330019700000005053002720000021f0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002170000413d000000000604004b0000022e0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000d201000041000000d20420009c000000000201801900000040012002100000006002300210000000000121019f00000344000104300000000004010019000000f501000041000001430240008c00000000020000190000000002012019000000f503400197000000000503004b0000000001008019000000f50330009c000000000102c019000000000101004b0000029a0000613d000000000a0003670000000401a00370000000000101043b000000d40210009c0000029a0000213d0000002402a00370000000000202043b0000004403a00370000000000703043b000000e00370009c0000029a0000213d0000002303700039000000000343004b0000029a0000813d000000040870003900000000038a034f000000000503043b000000e10350009c0000029c0000813d0000001f03500039000000200600008a000000000363016f0000003f03300039000000000663016f000000400300043d0000000006630019000000000936004b00000000090000190000000109004039000000e00b60009c0000029c0000213d00000001099001900000029c0000c13d000000400060043f000000000653043600000000075700190000002407700039000000000447004b0000029a0000213d000000200480003900000000074a034f0000001f0450018f0000000508500272000002760000613d0000000009000019000000050b900210000000000cb60019000000000bb7034f000000000b0b043b0000000000bc04350000000109900039000000000b89004b0000026e0000413d000000000904004b000002850000613d0000000508800210000000000787034f00000000088600190000000304400210000000000908043300000000094901cf000000000949022f000000000707043b0000010004400089000000000747022f00000000044701cf000000000494019f000000000048043500000000045600190000000000040435000000c404a00370000000000704043b000000a404a00370000000000604043b0000008404a00370000000000504043b0000006404a00370000000000404043b000000e408a00370000000000808043b000000d40980009c0000029a0000213d0000010409a00370000000000909043b000000d40b90009c0000029a0000213d000001240aa00370000000000a0a043b000000000001042d00000000010000190000034400010430000000f30100004100000000001004350000004101000039000000040010043f000000f4010000410000034400010430000000000200041a000000000212004b000002a90000a13d000000ea0110004100000000000004350000000002000019000000000001042d000000f30100004100000000001004350000003201000039000000040010043f000000f4010000410000034400010430000000400b00043d000000600cb00039000001400d0000390000000000dc0435000000400cb0003900000000002c0435000000d4021001970000002001b00039000000000021043500000000c30304340000016002b0003900000000003204350000018002b00039000000000d03004b000002c60000613d000000000d000019000000000e2d0019000000000fdc0019000000000f0f04330000000000fe0435000000200dd00039000000000e3d004b000002bf0000413d000000000c32001900000000000c0435000001400cb000390000000000ac0435000000d409900197000001200ab0003900000000009a0435000000d4088001970000010009b000390000000000890435000000e008b000390000000000780435000000c007b000390000000000670435000000a006b0003900000000005604350000008005b0003900000000004504350000001f03300039000000200400008a000000000343016f0000000003b300490000000002230019000000200320008a00000000003b04350000001f02200039000000000342016f0000000002b30019000000000332004b00000000030000190000000103004039000000e00420009c000002ff0000213d0000000103300190000002ff0000c13d000000400020043f000000d202000041000000d20310009c0000000001028019000000400110021000000000030b0433000000d20430009c00000000030280190000006003300210000000000113019f0000000003000414000000d20430009c0000000003028019000000c002300210000000000112019f000000e3011001c700008010020000390342033d0000040f0000000102200190000003050000613d000000000101043b000000000001042d000000f30100004100000000001004350000004101000039000000040010043f000000f401000041000003440001043000000000010000190000034400010430000000000001042f000000d203000041000000d20410009c00000000010380190000004001100210000000d20420009c00000000020380190000006002200210000000000112019f0000000002000414000000d20420009c0000000002038019000000c002200210000000000112019f000000e3011001c700008010020000390342033d0000040f00000001022001900000031c0000613d000000000101043b000000000001042d0000000001000019000003440001043000000000050100190000000000200439000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000231004b000003210000413d000000d2010000410000000002000414000000d20420009c0000000002018019000000d20430009c00000000030180190000006001300210000000c002200210000000000112019f000000f6011001c700000000020500190342033d0000040f0000000102200190000003370000613d000000000101043b000000000001042d000000000001042f0000033b002104210000000102000039000000000001042d0000000002000019000000000001042d00000340002104230000000102000039000000000001042d0000000002000019000000000001042d0000034200000432000003430001042e000003440001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000aaf10f4100000000000000000000000000000000000000000000000000000000aaf10f4200000000000000000000000000000000000000000000000000000000d4213aef0000000000000000000000000000000000000000000000000000000022bacceb0000000000000000000000000000000000000000000000000000000050b492ba000000000000000000000000000000005af43d82803e903d91602b57fd5bf3ff310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0000000000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f020000000000000000000000000000000000000000000000000000000000000002000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff0000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf33cda33511d41a8a5431b1770c5bc0ddd62e1cd30555d16659b89c0d60f4f9f570200000000000000000000000000000000000037000000090000000000000000290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffffffffffffffffffff0000000000000000000000000000000000000000448708bcd9fda3435ba79d40bb017e884dcbed0b1e972743c8fd32f6c5ff47bb1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000a011c8cc00000000000000000000000000000000000000000000000000000000455243313136373a2063726561746532206661696c656400000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd4dbde5c8f6d0953f0846b8e17d27c30604b1f7746b1369907ad8577afdb8c1", + "entries": [ + { + "constructorArgs": [ + "0xfb563bAAaB145Bd393b36a2a76E92A1712F41f8C" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0x870C1744173498905c9a1Da624CcC9852513f90D", + "txHash": "0xc4d9e1a9ade486b4aabe585335a5b368a7179acda8ecfcff5e9bbc2e6e50498f" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json new file mode 100644 index 00000000..918426ef --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json @@ -0,0 +1,1621 @@ +{ + "sourceName": "contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol", + "contractName": "TrancheVestingMerkleDistributor", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "int256", + "name": "amount", + "type": "int256" + } + ], + "name": "Adjust", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Claim", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "fromDelegate", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "toDelegate", + "type": "address" + } + ], + "name": "DelegateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + } + ], + "name": "DelegateVotesChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + } + ], + "name": "InitializeDistributionRecord", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "uri", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fractionDenominator", + "type": "uint256" + } + ], + "name": "InitializeDistributor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint160", + "name": "maxDelayTime", + "type": "uint160" + } + ], + "name": "SetDelay", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + } + ], + "name": "SetMerkleRoot", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "name": "SetSweepRecipient", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "SetToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "total", + "type": "uint256" + } + ], + "name": "SetTotal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "VestedFraction", + "type": "uint128" + } + ], + "name": "SetTranche", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "string", + "name": "uri", + "type": "string" + } + ], + "name": "SetUri", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "voteFactor", + "type": "uint256" + } + ], + "name": "SetVoteFactor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepNative", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "CLOCK_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "int256", + "name": "amount", + "type": "int256" + } + ], + "name": "adjust", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint32", + "name": "pos", + "type": "uint32" + } + ], + "name": "checkpoints", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "fromBlock", + "type": "uint32" + }, + { + "internalType": "uint224", + "name": "votes", + "type": "uint224" + } + ], + "internalType": "struct ERC20Votes.Checkpoint", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "totalAmount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "merkleProof", + "type": "bytes32[]" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "clock", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + } + ], + "name": "delegate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "delegateBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "delegates", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "distancePerSecond", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "getClaimableAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "getDistributionRecord", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "initialized", + "type": "bool" + }, + { + "internalType": "uint120", + "name": "total", + "type": "uint120" + }, + { + "internalType": "uint120", + "name": "claimed", + "type": "uint120" + } + ], + "internalType": "struct DistributionRecord", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getFairDelayTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFractionDenominator", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMerkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + } + ], + "name": "getPastTotalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timepoint", + "type": "uint256" + } + ], + "name": "getPastVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSweepRecipient", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "i", + "type": "uint256" + } + ], + "name": "getTranche", + "outputs": [ + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTranches", + "outputs": [ + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "time", + "type": "uint256" + } + ], + "name": "getVestedFraction", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "getVoteFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche[]", + "name": "_tranches", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "merkleProof", + "type": "bytes32[]" + } + ], + "name": "initializeDistributionRecord", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "maxDelayTime", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "numCheckpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "randomValue", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + } + ], + "name": "setMerkleRoot", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "_recipient", + "type": "address" + } + ], + "name": "setSweepRecipient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + } + ], + "name": "setToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + } + ], + "name": "setTotal", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche[]", + "name": "_tranches", + "type": "tuple[]" + } + ], + "name": "setTranches", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_uri", + "type": "string" + } + ], + "name": "setUri", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_voteFactor", + "type": "uint256" + } + ], + "name": "setVoteFactor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "sweepToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sweepToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "token", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "total", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x0004000000000002000f000000000002000000000301001900000060033002700000081b0030019d0000081b0b3001970003000000b10355000200000001035500000001022001900000003e0000c13d0000008005000039000000400050043f0000000402b0008c000015c70000413d000000000201043b000000e002200270000008380420009c000000830000a13d000008390420009c000000a50000213d000008510420009c000000e90000213d0000085d0420009c000001f40000213d000008630420009c000004040000213d000008660120009c000006510000613d000008670120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000000603000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f0000000105500190000001450000c13d000000800010043f000000000404004b000009400000613d0000000000300435000000000201004b0000000002000019000009610000613d000008c8030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000000360000413d000009610000013d0000016001000039000000400010043f0000000001000416000000000101004b000015c70000c13d0000001501000039000001600010043f0000081c02000041000001800020043f000001a00010043f000001c00020043f0000000303000039000001e00030043f0000081d01000041000002000010043f0000026001000039000000400010043f0000000101000039000c00000001001d000002200010043f0000081e01000041000002400010043f000000000600041100000010016002100000081f01100197000000000200041a0000082004200197000000000141019f000000000010041b0000081b0500004100000000010004140000081b0410009c0000000001058019000000c00110021000000821011001c7000000100220027000000822052001970000800d020000390000082304000041000b00000006001d2067205d0000040f0000000101200190000015c70000613d0000000c03000029000000000103041a00000824011001970000000b02000029000000000121019f000000000013041b000002600020043f00000000010004140000081b0210009c0000081b01008041000000c00110021000000825011001c70000800d0200003900000826040000412067205d0000040f0000000101200190000015c70000613d000001a00500043d000008270150009c0000013a0000413d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000008680420009c000000da0000a13d000008690420009c0000011c0000213d000008750420009c000002c50000213d0000087b0420009c000004d40000213d0000087e0420009c000007d10000613d0000087f0220009c000015c70000c13d00000000020004160000002404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000302043b000000000200041a000000100220027000000822022001970000000004000411000000000242004b000008740000c13d0000000102000039000000000402041a00000000050004140000082204400197000000040640008c000009740000c13d0000000001b1034f0000000108000031000009f20000013d0000083a0420009c000000f50000213d000008460420009c000002670000213d0000084c0420009c0000040d0000213d0000084f0420009c000006660000613d000008500220009c000015c70000c13d0000000002000416000000e403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002402100370000000000202043b000b00000002001d000008220220009c000015c70000213d0000006402100370000000000202043b000a00000002001d0000008401100370000000000101043b000900000001001d000000ff0110008c000015c70000213d000800000005001d000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000a0110006c00000d600000a13d000000400100043d0000004402100039000008b603000041000006040000013d000008800420009c0000014b0000a13d000008810420009c000001540000213d000008870420009c000003560000213d0000088a0420009c000005cf0000613d0000088b0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d00000017010000390000081d0000013d000008520420009c0000027c0000213d000008580420009c000004390000213d0000085b0420009c000006840000613d0000085c0220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000005bf0000013d0000083b0420009c000002ba0000213d000008410420009c0000044b0000213d000008440420009c000006910000613d000008450220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b0000000004020019000008220220009c000015c70000213d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000002401100370000000000301043b000b00000003001d0000000101000039000000000101041a00000822021001970000000001040019000c00000001001d20671a230000040f000000400100043d0000000b0200002900000000002104350000081b020000410000000003000414000009db0000013d0000086a0420009c000002d80000213d000008700420009c000004ff0000213d000008730420009c000008020000613d000008740120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d000000000100041a000000100210027000000822022001970000000005000411000000000252004b000008740000c13d0000082001100197000000000010041b0000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000821011001c70000800d020000390000000303000039000008230400004100000000060000190000067f0000013d0000000504000039000000000104041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000000112004b000003130000613d000008a50100004100000000001004350000002201000039000000040010043f000008a60100004100002069000104300000088c0420009c0000034b0000a13d0000088d0420009c000003e60000213d000008900420009c000006190000613d000008910120009c000004080000613d000015c70000013d000008820420009c000003ae0000213d000008850420009c000006080000613d000008860220009c000015c70000c13d0000000002000416000000e404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000004402100370000000000402043b000008290240009c000015c70000213d00000023024000390000000002b2004b000015c70000813d0000000405400039000000000251034f000000000202043b000008290620009c0000007d0000213d0000001f06200039000000200800008a000000000686016f0000003f06600039000000000686016f000008a10760009c0000007d0000213d0000008006600039000000400060043f000000800020043f000000000424001900000024044000390000000004b4004b000015c70000213d000b00000008001d0000002004500039000000000441034f0000001f0520018f00000005062002720000018d0000613d00000000070000190000000508700210000000000984034f000000000909043b000000a00880003900000000009804350000000107700039000000000867004b000001850000413d000000000705004b0000019c0000613d0000000506600210000000000464034f0000000305500210000000a006600039000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f0000000000460435000000a00220003900000000000204350000006402100370000000000202043b000008290420009c000015c70000213d00000023042000390000000004b4004b000015c70000813d0000000404200039000000000441034f000000000504043b000008290450009c0000007d0000213d00000005045002100000003f04400039000008a004400197000000400600043d0000000004460019000a00000006001d000000000664004b00000000060000190000000106004039000008290740009c0000007d0000213d00000001066001900000007d0000c13d000000400040043f0000000a040000290000000004540436000900000004001d0000002402200039000000060450021000000000042400190000000006b4004b000015c70000213d000000000505004b000011ce0000c13d000000a402100370000000000202043b000800000002001d000008220220009c000015c70000213d000000c401100370000000000101043b000600000001001d000008220110009c000015c70000213d000000000100041a000700000001001d0004ff00001001940000124b0000c13d0000000701000029000000ff0110019000000000020000190000000102006039000d00000002001d00000000020004150000000d0220008a0005000500200218000000000101004b0000124f0000c13d000001000100008a000000070110017f00000001011001bf000008e80110019700000100011001bf000300000000001d000000000010041b00000002020003670000002403200370000000000303043b000700000003001d0000008402200370000000000202043b000400000002001d0000ff0001100190000013230000c13d000000400100043d0000006402100039000008fb0300004100000000003204350000004402100039000008fc03000041000000000032043500000024021000390000002b03000039000007f60000013d0000085e0420009c000004720000213d000008610420009c000006c40000613d000008620220009c000015c70000c13d00000000020004160000002404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000502043b000008290250009c000015c70000213d00000023025000390000000002b2004b000015c70000813d0000000406500039000000000261034f000000000202043b000008290420009c0000007d0000213d0000001f07200039000000200400008a000000000747016f0000003f07700039000000000747016f000008a10870009c0000007d0000213d0000008007700039000000400070043f000000800020043f000000000525001900000024055000390000000003b5004b000015c70000213d0000002003600039000000000131034f0000001f0320018f0000000505200272000002270000613d00000000060000190000000507600210000000000871034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000021f0000413d000000000603004b000002360000613d0000000505500210000000000151034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f0000000000150435000000a0012000390000000000010435000000000100041a000000100110027000000822011001970000000002000411000000000121004b00000ded0000c13d000000800200043d000008290120009c0000007d0000213d0000001301000039000000000501041a000000010350019000000001065002700000007f0360018f000000000306c0190000001f0630008c00000000060000190000000106002039000000000565013f0000000105500190000001450000c13d000000200530008c0000025f0000413d0000001f0520003900000005055002700000089b065000410000089b05000041000000200720008c000000000506801900000000001004350000001f0330003900000005033002700000089b03300041000000000635004b0000025f0000813d000000000005041b0000000105500039000000000635004b0000025b0000413d0000001f0320008c00000fca0000a13d000000000010043500000000044201700000103f0000c13d000000a0050000390000089b030000410000104c0000013d000008470420009c000004b70000213d0000084a0420009c000006f20000613d0000084b0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008220110009c000015c70000213d206716c20000040f0000000c010000292067200d0000040f0000000001000019000020680001042e000008530420009c000004c00000213d000008560420009c0000070a0000613d000008570220009c000015c70000c13d0000000002000416000000c403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000004402100370000000000202043b000b00000002001d0000002402100370000000000202043b000a00000002001d0000006401100370000000000101043b000900000001001d000000ff0110008c000015c70000213d000800000005001d000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000400200043d000000000101043b0000000b03000029000000000131004b00000c650000a13d0000004401200039000008bd03000041000000000031043500000024012000390000001d030000390000000000310435000008320100004100000000001204350000000401200039000000200300003900000000003104350000081b010000410000081b0320009c00000000020180190000004001200210000008b1011001c700002069000104300000083c0420009c000004c90000213d0000083f0420009c000007150000613d000008400120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d00000016010000390000081d0000013d000008760420009c0000051d0000213d000008790420009c0000080e0000613d0000087a0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000201043b000008220120009c000015c70000213d0000000001000411206717400000040f0000000001000019000020680001042e0000086b0420009c000005340000213d0000086e0420009c000008220000613d0000086f0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d000008ab0100004100000000001004390000000001000412000c00000001001d0000000400100443000000a00100003900000024001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000400700043d000000000101043b000000ff0210008c000009410000c13d0000000704000039000000000304041a000000010530019000000001023002700000007f0120018f000000000102c0190000001f0210008c00000000020000190000000102002039000000000223013f0000000102200190000001450000c13d0000000002170436000000000505004b00000bc00000613d0000000000400435000000000301004b000000000300001900000bc60000613d0000082a0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000513004b0000030b0000413d00000bc60000013d000000200130008c000003350000413d000900000003001d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d0000000a050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000009010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000b04000029000003350000813d000000000002041b0000000102200039000000000312004b000003310000413d0000001f0150008c000005b00000a13d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000200200008a0000000a060000290000000003260170000000000101043b000008ce0000c13d0000002002000039000008d80000013d000008920420009c000008ae0000613d000008930420009c000005bc0000613d000008940120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000001401000039000008360000013d000008880420009c0000060f0000613d000008890220009c000015c70000c13d00000000020004160000008404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b0000002404100370000000000404043b000800000004001d000008220440009c000015c70000213d0000004404100370000000000404043b000700000004001d0000006404100370000000000404043b000008290540009c000015c70000213d00000023054000390000000005b5004b000015c70000813d0000000405400039000000000151034f000000000101043b000c00000001001d000008290110009c000015c70000213d00000024014000390000000c030000290000000503300210000600000001001d000b00000003001d000900000013001d0000000901b0006b000015c70000213d000000a00020043f00000008010000290000006001100210000000c00010043f0000000701000029000000d40010043f0000005401000039000000800010043f0000010001000039000000400010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008fd011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000b020000290000003f02200039000008a002200197000000400300043d0000000002230019000b00000003001d000000000332004b00000000030000190000000103004039000008290420009c0000007d0000213d00000001033001900000007d0000c13d000000400020043f0000000b020000290000000c040000290000000002420436000a00000002001d0000000902000029000000000220007c000015c70000213d0000000c0200006b00000fd60000c13d0000001a02000039000000000202041a000600000002001d000010060000013d000008830420009c000006140000613d000008840220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008220110009c000015c70000213d000000000100041100000000001004350000000301000039000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000c020000290000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000101041a000000010200008a000000000121013f00000024020000390000000202200367000000000202043b000000000112004b00000a9f0000a13d000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300000088e0420009c000006340000613d0000088f0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000000401100370000000000101043b0000001102000039000000000012041b000000800010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008b7011001c70000800d0200003900000001030000390000090b040000410000067f0000013d000008640420009c000007320000613d000008650120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000000401000039000008360000013d0000084d0420009c000007440000613d0000084e0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000001903000039000000000203041a000008290120009c0000007d0000213d00000005012002100000003f01100039000008a004100197000008a10140009c0000007d0000213d0000008001400039000000400010043f000000800020043f0000000000300435000000000302004b00000d420000613d000008310340009c0000007d0000213d000008a203000041000000a00400003900000000050000190000004006100039000000400060043f000000000603041a000000200710003900000080086002700000000000870435000008a30660019700000000006104350000000004140436000000400100043d0000000105500039000000000625004b00000d420000813d0000000103300039000008a40610009c000004280000a13d0000007d0000013d000008590420009c000007600000613d0000085a0220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000302043b000008220230009c000015c70000213d0000002401100370000000000201043b000000000103001920671e260000040f000007bf0000013d000008420420009c000007800000613d000008430220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002401100370000000000101043b000b00000001001d0000081b0110009c000015c70000213d206717030000040f0000000c0100002900000000001004350000000c01000039000000200010043f00000040020000390000000001000019206720280000040f0000000b02000029206717120000040f2067172d0000040f00000000210104340000081b01100197000000400300043d00000000011304360000000002020433000008990220019700000000002104350000081b010000410000075b0000013d0000085f0420009c000007a00000613d000008600220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d000000000200041100000000002004350000000302000039000000200020043f0000002401100370000000000101043b000b00000001001d0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000c020000290000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000501041a000000400100043d0000083202000041000000000021043500000004021000390000002003000039000000000032043500000044021000390000081b030000410000081b0410009c0000000003014019000000240410003900000040033002100000000b0550006c00000cd70000813d00000025050000390000000000540435000008c20400004100000000004204350000006401100039000008c302000041000000000021043500000835013001c70000206900010430000008480420009c000007b50000613d000008490120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000001201000039000008360000013d000008540120009c000007c70000613d000008550120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d00000001010000390000081d0000013d0000083d0120009c000007cc0000613d0000083e0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000000301000039000000800010043f0000089501000041000020680001042e0000087c0120009c000008320000613d0000087d0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000400300043d000000000101043b000008e00110009c0000094c0000413d0000006401300039000008e20200004100000000002104350000004401300039000008e3020000410000000000210435000000240130003900000026020000390000000000210435000008320100004100000000001304350000000401300039000000200200003900000000002104350000081b010000410000081b0230009c0000000003018019000000400130021000000835011001c70000206900010430000008710420009c0000083a0000613d000008720220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000000401100370000000000101043b0000001a02000039000000000012041b000000800010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008b7011001c70000800d020000390000000103000039000008d4040000410000067f0000013d000008770420009c0000087d0000613d000008780220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000c01000039000000200010043f00000040020000390000000001000019206720280000040f000000000101041a000c00000001001d20671a0b0000040f0000065d0000013d0000086c0420009c000008a80000613d0000086d0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000008ca0210009c000007ed0000213d0000000c07000029000000000117004b00000a9b0000813d0000000d01000039000000000201041a000000060320008c00000cdd0000413d0000008003200270000008cb0420009c0000000003024019000008cb0420009c0000008004000039000000000400401900000040054001bf000008270630009c00000000040580190000004005300270000008270630009c000000000305801900000020054001bf000008cc0630009c00000000040580190000002005300270000008cc0630009c000000000305801900000010054001bf000008cd0630009c00000000040580190000001005300270000008cd0630009c0000000003058019000001000530008c00000008044080390000000803308270000000100530008c00000004044080390000000403308270000000040530008c00000002044080390000000203308270000000010330008c00000001044020390000000103400270000000000432022f000000010330020f0000000003430019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d9000000000543004b0000000003048019000000000432004b000003e00000413d00000000001004350000000004320049000008ce03400041000000000303041a0000081b03300197000000000373004b000012710000a13d000000000300001900000000020400190000000c07000029000000000423004b00000ce00000413d00000cf90000013d000000000105004b0000000001000019000005b40000613d000001c00100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f000008e60000013d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220110009c000015c70000213d0000083201000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f000008b301000041000000c40010043f0000090e01000041000020690001043000000000020004160000006403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000008220320009c000015c70000213d0000002401100370000000000101043b000008220110009c000015c70000213d00000000002004350000000301000039000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000200041100000822022001970000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000101041a000000010200008a000000000221004b00000a9f0000613d00000044020000390000000202200367000000000202043b000000000121004b00000a9f0000813d000000400100043d00000044021000390000090a03000041000000000032043500000024021000390000001d0300003900000c280000013d0000000001000416000000000101004b000015c70000c13d0000001201000039000000800010043f0000089501000041000020680001042e0000000001000416000000000101004b000015c70000c13d0000001101000039000008360000013d0000000001000416000000000101004b000015c70000c13d206719440000040f000007bf0000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000501043b000008220150009c000015c70000213d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d000000000105004b0000098f0000c13d0000083201000041000000800010043f0000002001000039000000840010043f0000001301000039000000a40010043f0000091001000041000000c40010043f0000090e01000041000020690001043000000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008220110009c000015c70000213d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d0000090c01000041000000800010043f0000000001000410000000840010043f00000000010004140000000c02000029000000040320008c0000099e0000c13d0000000103000031000000200130008c00000000040300190000002004008039000009c90000013d0000000001000416000000000101004b000015c70000c13d0000800b01000039000000040300003900000000040004150000000f0440008a0000000504400210000008c9020000412067203e0000040f000c00000001001d206719f30000040f000000400100043d0000000c0200002900000000002104350000081b020000410000081b0310009c000000000102801900000040011002100000089f011001c7000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000000401100370000000000101043b0000001802000039000000000012041b000000800010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008b7011001c70000800d020000390000000103000039000008b8040000412067205d0000040f0000000101200190000015c70000613d0000000001000019000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d20671e1a0000040f000000800010043f0000089501000041000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d000000e002000039000c00000002001d000000400020043f000000800000043f000000a00000043f000000c00000043f00000000001004350000000f01000039000000200010043f00000040020000390000000001000019206720280000040f000b00000001001d0000000c01000029206716480000040f0000000b01000029000000000101041a000000ff021001900000000002000019000000010200c039000000e00020043f00000008031002700000089d03300197000001000030043f00000080011002700000089d01100197000001200010043f000000400100043d0000000002210436000001000300043d0000089d033001970000000000320435000001200200043d0000089d02200197000000400310003900000000002304350000081b020000410000081b0310009c000000000102801900000040011002100000089e011001c7000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000201043b000000000302041a000000000103004b0000000001000019000007bf0000613d000c00000003001d00000000002004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000c020000290000000001120019000000010110008a000000000101041a0000002001100270000007bf0000013d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000008220320009c000015c70000213d0000002401100370000000000101043b000c00000001001d000008220110009c000015c70000213d00000000002004350000000301000039000000200010043f00000040020000390000000001000019206720280000040f0000000c02000029206716f20000040f000000000101041a000007bf0000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220110009c000015c70000213d0000001801000039000008360000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d000000000201004b00000a340000c13d0000083201000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000089601000041000000c40010043f0000089701000041000000e40010043f0000089801000041000020690001043000000000020004160000002404b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008290210009c000015c70000213d000000040110003900000000020b0019206716660000040f000c00000001001d206716c20000040f0000000c0100002920671e680000040f0000000001000019000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000000c002000039000000400020043f000000800000043f000000a00000043f0000001902000039000000000302041a000000000331004b0000092e0000813d0000000000200435000008a20110004120671e550000040f000000400200043d000c00000002001d206716bb0000040f0000081b010000410000000c030000290000081b0230009c000000000301801900000040013002100000089a011001c7000020680001042e0000000001000416000000000101004b000015c70000c13d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d000008be010000410000000000100439000000000100041000000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800a02000039206720620000040f0000000102200190000015790000613d000000000701043b0000000102000039000000000302041a00000000010004140000082204300197000000040340008c0000097d0000c13d000000010100003100000c0f0000013d0000000001000416000000000101004b000015c70000c13d0000001303000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f0000000105500190000001450000c13d000000800010043f000000000404004b0000095b0000613d0000000000300435000000000201004b0000000002000019000009610000613d0000089b030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000007980000413d000009610000013d0000000001000416000000000101004b000015c70000c13d000000c001000039000000400010043f0000001f01000039000000800010043f000008c401000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e002000039206715eb0000040f000000c00110008a0000081b020000410000081b0310009c00000000010280190000006001100210000008c5011001c7000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d20671d7b0000040f000000400200043d00000000001204350000081b010000410000081b0320009c000000000201801900000040012002100000089f011001c7000020680001042e0000000001000416000000000101004b000015c70000c13d00000015010000390000081d0000013d0000000001000416000000000101004b000015c70000c13d00000010010000390000081d0000013d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002401100370000000000101043b000900000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000008e00210009c00000a370000413d000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e3030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c7000020690001043000000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d000000000010043500000002010000390000082d0000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000b01000039000000200010043f00000040020000390000000001000019206720280000040f000000000101041a0000082201100197000000800010043f0000089501000041000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000901000039000000200010043f00000040020000390000000001000019206720280000040f000008360000013d0000000001000416000000000101004b000015c70000c13d0000001a01000039000000000101041a000000800010043f0000089501000041000020680001042e00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002401100370000000000301043b000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d000b00000003001d0000000c0100002900000000001004350000000f01000039000a00000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d000008d50320009c0000007d0000213d000000000101043b0000006003200039000000400030043f000000000301041a00000080013002700000089d0110019700000040042000390000000000140435000000ff043001900000000001000019000000010100c039000000000112043600000008023002700000089d022001970000000000210435000000000204004b00000df80000c13d000000400100043d0000004402100039000008df0300004100000df00000013d0000083201000041000000800010043f0000002001000039000000840010043f000000a40010043f000008c601000041000000c40010043f0000090e0100004100002069000104300000000001000416000000000101004b000015c70000c13d00000000010b0019206716140000040f00000000060100190000000007020019000b00000007001d0000000008030019000a00000008001d000900000004001d000800000005001d000000400100043d000c00000001001d0000002001100039000700000001001d00000000020600190000000003070019000000000408001920671f1a0000040f0000000c030000290000000002310049000000200120008a00000000001304350000000001030019206716530000040f0000000c0100002900000000020104330000000701000029206720280000040f000c00000001001d00000000030000310000000901000029000000080200002920671f220000040f00000000020100190000000c0100002920671fc60000040f0000000b010000290000000a0200002920671f4a0000040f0000000001000019000020680001042e0000000001000416000000000101004b000015c70000c13d000000000100041a00000010011002700000081e0000013d0000000001000416000000000101004b000015c70000c13d0000000503000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f0000000105500190000001450000c13d000000800010043f000000000404004b0000095b0000613d0000000000300435000000000201004b0000000002000019000009610000613d00000911030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008c60000413d000009610000013d00000020020000390000000004000019000001a0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000008d00000413d000000000363004b000008e30000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001a0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000b04000029000000000014041b000001e00500043d000008290150009c0000007d0000213d0000000604000039000000000104041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000001450000c13d000000200130008c000009180000413d000900000003001d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d0000000a050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000009010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000b04000029000009180000813d000000000002041b0000000102200039000000000312004b000009140000413d0000001f0150008c000009340000a13d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000200200008a0000000a060000290000000003260170000000000101043b00000aa60000c13d000000200200003900000ab00000013d000008a50100004100000000001004350000003201000039000000040010043f000008a6010000410000206900010430000000000105004b0000000001000019000009380000613d000002000100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f00000abe0000013d0000095b0000013d000000ff0210018f000000200320008c000009860000413d000008d00100004100000000001704350000081b010000410000081b0270009c00000000070180190000004001700210000008d1011001c700002069000104300000000001030019000b00000003001d2067163d0000040f0000000b030000290000002001300039000008e10200004100000000002104350000001d0100003900000000001304350000000002030019000000400100043d000c00000001001d206715fe0000040f0000000c040000290000096a0000013d000001000300008a000000000232016f000000a00020043f000000000101004b0000002002000039000000000200601900000020022000390000008001000039000c00000001001d206716530000040f000000400100043d000b00000001001d0000000c02000029206715fe0000040f0000000b0400002900000000014100490000081b020000410000081b0310009c00000000010280190000081b0340009c000000000402801900000040024002100000006001100210000000000121019f000020680001042e0000081b010000410000081b0250009c0000000005018019000000c001500210000000000203004b000c00000003001d000009e80000c13d0000000002040019000009eb0000013d0000081b020000410000081b0310009c0000000001028019000000c001100210000000000207004b000c00000007001d00000c050000c13d000000000204001900000c090000013d000008a40370009c0000007d0000213d0000004003700039000000400030043f00000020037000390000000000130435000b00000007001d000000000027043500000bd30000013d0000001001000039000000000201041a0000082402200197000000000252019f000000000021041b0000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000821011001c70000800d0200003900000002030000390000090f040000410000067f0000013d0000081b040000410000081b0310009c0000000001048019000000c0011002100000090d011001c7206720620000040f000000000301001900000060033002700000081b03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000009b60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000009ae0000413d000000000705004b000009c50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000d030000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000015c70000413d0000000101000039000000000101041a000000800300043d000b00000003001d00000822021001970000000c0100002920671a230000040f000000400100043d0000000b0200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d0200003900000002030000390000089c040000410000000c050000290000067f0000013d00000821011001c7000080090200003900000000050000192067205d0000040f0000000c030000290003000000010355000000000401001900000060044002700001081b0040019d0000081b08400197000000000408004b00000a060000c13d000000400100043d000000010220019000000c230000613d00000000003104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d020000390000000103000039000008c1040000410000067f0000013d000008290480009c0000007d0000213d0000001f04800039000000200500008a000000000454016f0000003f04400039000000000454016f000000400500043d0000000004450019000000000654004b00000000060000190000000106004039000008290740009c0000007d0000213d00000001066001900000007d0000c13d000000400040043f0000001f0480018f0000000005850436000000050980027200000a240000613d000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000796004b00000a1c0000413d000000000604004b000009f40000613d0000000506900210000000000161034f00000000066500190000000304400210000000000506043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000160435000009f40000013d206716da0000040f0000000001000019000020680001042e000000090110006b00000a9b0000813d0000000c0100002900000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000800000001001d000000000101041a000b00000001001d000000060110008c00000e3c0000413d0000000b050000290000008001500270000008cb0250009c0000000001054019000008cb0250009c0000008002000039000000000200401900000040032001bf000008270410009c00000000020380190000004003100270000008270410009c000000000103801900000020032001bf000008cc0410009c00000000020380190000002003100270000008cc0410009c000000000103801900000010032001bf000008cd0410009c00000000020380190000001003100270000008cd0410009c0000000001038019000001000310008c00000008022080390000000801108270000000100310008c00000004022080390000000401108270000000040310008c00000002022080390000000201108270000000010110008c00000001022020390000000101200270000000000215022f000000010110020f0000000001210019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c000012790000813d000008a50100004100000000001004350000001201000039000000040010043f000008a6010000410000206900010430000000400100043d0000004402100039000008e40300004100000aa20000013d000000400100043d0000004402100039000008b30300004100000000003204350000002402100039000000190300003900000c280000013d00000020020000390000000004000019000001e0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b00000aa80000413d000000000363004b00000abb0000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001e0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000b04000029000000000014041b000001600100043d000000200210008c00000ae50000413d000008290210009c0000007d0000213d0000000702000039000000000402041a000000010340019000000001054002700000007f0350018f000000000305c0190000001f0530008c00000000050000190000000105002039000000000454013f0000000104400190000001450000c13d000000200430008c00000ade0000413d0000001f0330003900000005053002700000082a035000410000001f041000390000000504400270000000000554004b00000ade0000813d0000082a04400041000000000004041b0000000104400039000000000534004b00000ada0000413d0000000000200435000000200300008a000000000431017000000d260000c13d00000180050000390000082a0300004100000d330000013d00000003021002100000010002200089000000010300008a00000000022301cf000000000301004b0000000002006019000001800300043d000000000223016f000000000212019f000001200020043f000002200200043d000000200320008c00000b150000413d000008290320009c0000007d0000213d0000000803000039000000000503041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f0000000105500190000001450000c13d000000200540008c00000b0e0000413d0000001f0440003900000005064002700000082b046000410000001f052000390000000505500270000000000665004b00000b0e0000813d0000082b05500041000000000005041b0000000105500039000000000645004b00000b0a0000413d0000000000300435000000200400008a000000000542017000000e200000c13d00000240060000390000082b0400004100000e2d0000013d00000003032002100000010003300089000000010400008a00000000033401cf000000000402004b0000000003006019000002400400043d000000000334016f000000000223019f000001400020043f0000081b0400004100000000020004140000081b0320009c00000000020480190000081b0310009c00000000010480190000006001100210000000c002200210000000000121019f0000082c011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000b00000001001d000000e00010043f000002200100043d00000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000006001100210000000c002200210000000000121019f0000082d011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000a00000001001d000001000010043f0000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000a00010043f000000400300043d0000008002300039000000000012043500000060013000390000000a02000029000000000021043500000040013000390000000b020000290000000000210435000000a001000039000900000001001d0000000001130436000000a0023000390000000004000410000a00000004001d000000000042043500000830020000410000000000210435000b00000003001d000008310230009c0000007d0000213d0000000b04000029000000c002400039000800000002001d000000400020043f0000081b020000410000081b0310009c0000000001028019000000400110021000000000030404330000081b0430009c00000000030280190000006003300210000000000113019f00000000030004140000081b0430009c0000000003028019000000c002300210000000000112019f00000821011001c70000801002000039206720620000040f00000001022001900000000c03000029000015c70000613d000000000101043b000000800010043f0000000a02000029000000c00020043f0000000e02000039000000000032041b000000000200041a0000ff0003200190000010140000c13d000000ff0320018f000000ff0330008c00000ba10000613d000000ff012001bf000000000010041b000000ff01000039000000400200043d00000000001204350000081b0100004100000000030004140000081b0430009c00000000030180190000081b0420009c00000000020180190000004001200210000000c002300210000000000121019f00000828011001c70000800d02000039000000010300003900000836040000412067205d0000040f0000000101200190000015c70000613d000000c00100043d000a00000001001d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a0001004430000004001000039000001c0001004430000000a01000029000001e0001004430000006001000039000000e00300043d000002000010044300000220003004430000008001000039000001000300043d00000240001004430000026000300443000001200100043d00000009030000290000028000300443000002a000100443000000c001000039000001400300043d000002c000100443000002e0003004430000010000200443000000070100003900000120001004430000083701000041000020680001042e000001000400008a000000000343016f0000000000320435000000000101004b000000200300003900000000030060190000003f01300039000000200200008a000000000221016f0000000001720019000000000221004b00000000020000190000000102004039000008290310009c0000007d0000213d00000001022001900000007d0000c13d000b00000007001d000000400010043f000008ab0100004100000000001004390000000c010000290000000400100443000000c00100003900000024001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000400200043d000000000101043b000000ff0310008c00000e150000c13d0000000805000039000000000405041a000000010640019000000001034002700000007f0130018f000000000103c0190000001f0310008c00000000030000190000000103002039000000000334013f00000001033001900000000b08000029000001450000c13d0000000003120436000000000606004b00000ebd0000613d0000000000500435000000000401004b000000000400001900000ec30000613d0000082b0500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b00000bfd0000413d00000ec30000013d00000821011001c70000800902000039000000000307001900000000050000192067205d0000040f0000000c07000029000300000001035500000060011002700001081b0010019d0000081b01100197000000000301004b00000c340000c13d000000400100043d000000010220019000000c230000613d00000000007104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d020000390000000103000039000008c1040000410000067f0000013d0000004402100039000008c0030000410000000000320435000000240210003900000010030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c70000206900010430000008290310009c0000007d0000213d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000008290630009c0000007d0000213d00000001055001900000007d0000c13d0000000009070019000000400030043f0000001f0310018f00000000041404360000000305000367000000050110027200000c540000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000c4c0000413d000000000603004b000000000709001900000c110000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f000000000031043500000c110000013d0000008001200039000000000031043500000060012000390000000a03000029000000000031043500000040012000390000000c03000029000000000031043500000008010000290000000001120436000008b9030000410000000000310435000008ba0320009c0000007d0000213d000000a003200039000000400030043f0000081b040000410000081b0310009c0000000001048019000000400110021000000000020204330000081b0320009c00000000020480190000006002200210000000000112019f00000002020003670000008403200370000000000303043b000700000003001d000000a402200370000000000202043b000b00000002001d00000000020004140000081b0320009c0000000002048019000000c002200210000000000112019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000500000001001d000008ab0100004100000000001004390000000001000412000600000001001d00000004001004430000004001000039000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b00000822011001970000000002000410000300000002001d000000000112004b00000f3d0000c13d000008ab01000041000000000010043900000006010000290000000400100443000000200100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000400000001001d0000082e01000041000000000010043900000000010004140000081b0210009c0000081b01008041000000c0011002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000040110006c00000f3d0000c13d000008ab0100004100000000001004390000000601000029000000040010044300000024000004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d00000f980000013d00000019010000390000000000140435000008b3010000410000000000120435000008b1013001c700002069000104300000000003000019000000000423004b00000cf90000813d000000010400008a00000ce50000013d0000000002050019000000000523004b00000cf90000813d000000000523016f000000000623013f00000001066002700000000005560019000000000665004b000000000600001900000001060040390000000106600190000003e00000c13d0000000000100435000008ce06500041000000000606041a0000081b06600197000000000676004b00000ce20000213d000000000345004b000003e00000613d0000000103500039000000000523004b00000ce50000413d000000000302004b000000000300001900000d000000613d0000000000100435000008cf01200041000000000101041a0000002003100270000000400100043d0000000000310435000006600000013d000000400200043d0000001f0430018f000000050530027200000d100000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d080000413d000000000604004b00000d1f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000081b010000410000081b0420009c000000000201801900000040012002100000006002300210000000000121019f00002069000104300000082a0300004100000020060000390000000005000019000000000706001900000160067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b00000d290000413d0000018005700039000000000414004b00000d3d0000813d0000000304100210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010310021000000001033001bf000000000032041b000000ff0200003900000aee0000013d00000020020000390000000002210436000000800300043d00000000003204350000004002100039000000000403004b00000d560000613d000000a004000039000000000500001900000000460404340000000076060434000008a30660019700000000066204360000000007070433000008a307700197000000000076043500000040022000390000000105500039000000000635004b00000d4b0000413d00000000021200490000081b030000410000081b0420009c00000000020380190000081b0410009c000000000103801900000040011002100000006002200210000000000112019f000020680001042e0000000c0100002900000000001004350000000901000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000301041a0000000102300039000000000021041b00000002010003670000004402100370000000000402043b000000400200043d000000c0052000390000000a060000290000000000650435000000a00520003900000000003504350000008003200039000000000043043500000060032000390000000b04000029000000000043043500000040032000390000000c0400002900000000004304350000002003200039000008a9040000410000000000430435000000c0040000390000000000420435000008aa0420009c0000007d0000213d000000e004200039000000400040043f0000081b050000410000081b0430009c0000000003058019000000400330021000000000020204330000081b0420009c00000000020580190000006002200210000000000232019f000000a403100370000000000303043b000a00000003001d000000c401100370000000000101043b000b00000001001d00000000010004140000081b0310009c0000000001058019000000c001100210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000600000001001d000008ab0100004100000000001004390000000001000412000700000001001d00000004001004430000004001000039000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b00000822011001970000000002000410000400000002001d000000000112004b000011010000c13d000008ab01000041000000000010043900000007010000290000000400100443000000200100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000500000001001d0000082e01000041000000000010043900000000010004140000081b0210009c0000081b01008041000000c0011002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000050110006c000011010000c13d000008ab0100004100000000001004390000000701000029000000040010044300000024000004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d0000115c0000013d000000400100043d0000004402100039000008c603000041000000000032043500000832020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000c2d0000013d000008d6020000410000000b06000029000000000306004b00000000030000190000000003024019000008d604600197000000000504004b000000000200a019000008d60440009c000000000203c019000000000202004b00000e070000c13d000000000206004b000900000006001d00000e0b0000c13d000008d60260009c000003e00000613d0000000b02000029000900000020005100000009020000290000089d0220009c00000e770000413d000000400100043d0000004402100039000008de0300004100000000003204350000002402100039000000180300003900000c280000013d000000ff0310018f000000200430008c00000e6c0000413d000008d00100004100000000001204350000081b010000410000081b0320009c00000000020180190000004001200210000008d1011001c700002069000104300000082b0400004100000020070000390000000006000019000000000807001900000220078000390000000007070433000000000074041b000000200780003900000001044000390000002006600039000000000956004b00000e230000413d0000024006800039000000000525004b00000e370000813d0000000305200210000000f80550018f000000010700008a000000000557022f000000000575013f0000000006060433000000000556016f000000000054041b000000010220021000000001022001bf000000000023041b000000ff0200003900000b1e0000013d00000000030000190000000b0130006c00000ea90000813d000780100000003d0000000b0200002900000e460000013d00000000020300190000000a03000029000000000123004b00000eaa0000813d000000000123016f000b00000002001d000a00000003001d000000000223013f00000001022002700000000003120019000000000123004b000000000100001900000001010040390000000101100190000003e00000c13d000c00000003001d0000000801000029000000000010043500000000010004140000081b0210009c0000081b01008041000000c00110021000000828011001c70000000702000029206720620000040f0000000102200190000015c70000613d000000000101043b0000000c030000290000000001310019000000000101041a0000081b01100197000000090110006c00000e420000213d000000010100008a000000000113004b000003e00000613d00000001033000390000000b02000029000000000123004b00000e460000413d00000eaa0000013d000008a40420009c0000000b080000290000007d0000213d0000004004200039000000400040043f000000200420003900000000001404350000000000320435000000400100043d000c00000001001d00000ed10000013d000000010200008a000008d6040000410000000b03000029000000000223004b00000000020000190000000002042019000008d603300197000008d60530009c0000000004008019000008d603300167000008d60330009c000000000402c0190000001102000039000000000302041a000000000404004b00000f310000613d0000000901300029000000000331004b000000000300001900000001030040390000000103300190000003e00000c13d000000000012041b0000000c0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a00000008032002700000089d0330019700000009033000290000089d0430009c000003e00000213d000008d7022001970000000803300210000008d803300197000000000223019f000000000021041b000010ee0000013d0000000b02000029000b00000002001d000000000102004b0000000001000019000007bf0000613d000000080100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000b02000029000006ed0000013d000001000500008a000000000454016f0000000000430435000000000101004b000000200400003900000000040060190000003f01400039000000200300008a000000000131016f0000000003210019000000000113004b00000000010000190000000101004039000c00000003001d000008290330009c0000007d0000213d00000001011001900000007d0000c13d0000000c01000029000000400010043f0000000c01000029000008d20110009c0000007d0000213d0000000c030000290000002001300039000700000001001d000000400010043f0000000000030435000000400500043d0000002001500039000000e0030000390000000000310435000008d30100004100000000001504350000000041080434000000e0035000390000000000130435000b00000005001d0000010003500039000000000501004b00000eee0000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000615004b00000ee70000413d000000000413001900000000000404350000001f01100039000a0020000000920000000a0110017f00000000031300190000000b0400002900000000014300490000004004400039000000000014043500000000160204340000000005630436000000000206004b00000f040000613d000000000200001900000000035200190000000004210019000000000404043300000000004304350000002002200039000000000362004b00000efd0000413d000900000005001d000800000006001d000000000165001900000000000104350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000b040000290000008002400039000000000300041000000000003204350000006002400039000000000012043500000008010000290000001f011000390000000a0110017f00000009011000290000000002410049000000c0034000390000000000230435000000a00240003900000000000204350000000c0200002900000000020204330000000001210436000000000302004b000009690000613d00000000030000190000000705000029000000005405043400000000014104360000000103300039000000000423004b00000f2b0000413d000009690000013d000000090430006c000010310000813d000000400100043d0000006402100039000008db0300004100000000003204350000004402100039000008dc03000041000000000032043500000024021000390000002703000039000007f60000013d000000400100043d000400000001001d00000020021000390000083001000041000200000002001d0000000000120435000008ab01000041000000000010043900000006010000290000000400100443000000600100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000000040200002900000040022000390000000000120435000008ab010000410000000000100439000000060100002900000004001004430000000801000029000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b0000000402000029000000600220003900000000001204350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000404000029000000a0024000390000000303000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000008310140009c0000007d0000213d0000000403000029000000c001300039000000400010043f0000081b0100004100000002040000290000081b0240009c0000000004018019000000400240021000000000030304330000081b0430009c00000000030180190000006003300210000000000223019f00000000030004140000081b0430009c0000000003018019000000c001300210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000400200043d000000220320003900000005040000290000000000430435000008ad030000410000000000320435000000020320003900000000001304350000081b0400004100000000010004140000081b0310009c00000000010480190000081b0320009c0008081b0000004500000000020480190000004002200210000000c001100210000000000112019f000008ae011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d0000081b0320009c00000008030000290000000003024019000800000003001d0000000b03000029000008af0330009c000012d70000a13d0000006401200039000008b40300004100000000003104350000004401200039000008b5030000410000000000310435000000240120003900000022030000390000000000310435000008320100004100000000001204350000000401200039000000200200003900000000002104350000000801000029000000400110021000000835011001c70000206900010430000000000302004b000000000300001900000fce0000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000343016f0000000102200210000000000423019f000010580000013d00000002020003670000000b0300002900000006050000290000000906000029000000000452034f000000000404043b000000200330003900000000004304350000002005500039000000000465004b00000fda0000413d0000001a02000039000000000202041a000600000002001d0000000b020000290000000002020433000000000202004b000010060000613d000980100000003d0000000003000019000c00000003001d00000005023002100000000a022000290000000002020433000000000321004b00000ff40000813d0000000000100435000000200020043f000000000100041400000ff70000013d0000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000000902000029206720620000040f0000000102200190000015c70000613d000000000101043b0000000c0300002900000001033000390000000b020000290000000002020433000000000223004b00000fea0000413d000000060110006c0000102a0000c13d0000000e01000039000c00000001001d000000000101041a000000020110008c000010920000c13d000000400100043d00000044021000390000090903000041000000000032043500000024021000390000001f0300003900000c280000013d0000083201000041000000080400002900000000001404350000000b03000029000001240130003900000833020000410000000000210435000001040130003900000834020000410000000000210435000000e40130003900000027020000390000000000210435000000c401300039000000200200003900000000002104350000081b010000410000081b0240009c0000000004018019000000400140021000000835011001c70000206900010430000000400100043d0000004402100039000008fe03000041000000000032043500000024021000390000000d0300003900000c280000013d00000000010104330000089d01100197000000090110006c000010ca0000813d000000400100043d0000006402100039000008d90300004100000000003204350000004402100039000008da03000041000000000032043500000024021000390000002e03000039000007f60000013d0000089b0300004100000020060000390000000005000019000000000706001900000080067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b000010420000413d000000a005700039000000000424004b000010560000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010220021000000001042001bf000000000041041b000000010540019000000001034002700000007f0230018f000000000203c0190000001f0320008c00000000030000190000000103002039000000000334013f0000000103300190000001450000c13d000000400300043d000000000505004b000010730000613d0000000000100435000000000102004b000010760000613d0000089b0100004100000000040000190000000005340019000000000601041a000000000065043500000001011000390000002004400039000000000524004b0000106b0000413d000010760000013d000001000100008a000000000114016f00000000001304350000081b040000410000081b0130009c000000000304801900000040013002100000081b0320009c00000000020480190000006002200210000000000112019f00000000020004140000081b0320009c0000000002048019000000c002200210000000000112019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000501043b00000000010004140000081b0210009c0000081b01008041000000c00110021000000821011001c70000800d020000390000000203000039000008c7040000410000067f0000013d00000002010000390000000c02000029000000000012041b00000008010000290000082201100197000b00000001001d00000000001004350000000f01000039000a00000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f00000007030000290009089d0030019b0000000102200190000015c70000613d000000000101043b000000000101041a00000008011002700000089d01100197000000090110006c000011f20000c13d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000101041a000000ff01100190000012970000c13d000000400100043d00000064021000390000090703000041000000000032043500000044021000390000090803000041000000000032043500000024021000390000002203000039000007f60000013d000000090130006a000000000012041b0000000c0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a00000008032002700000089d03300197000000090330006a0000089d0430009c000003e00000213d000008d7022001970000000803300210000008d803300197000000000223019f000000000021041b0000001001000039000000000101041a000000000200041a000008220110019700000010022002700000082202200197000000090300002920671a230000040f0000000c0100002920671b570000040f000000400100043d0000000b0200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d020000390000000203000039000008dd04000041000009e60000013d000000400100043d000500000001001d00000020021000390000083001000041000300000002001d0000000000120435000008ab01000041000000000010043900000007010000290000000400100443000000600100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000000050200002900000040022000390000000000120435000008ab010000410000000000100439000000070100002900000004001004430000000801000029000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b0000000502000029000000600220003900000000001204350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000504000029000000a0024000390000000403000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000008310140009c0000007d0000213d0000000503000029000000c001300039000000400010043f0000081b0100004100000003040000290000081b0240009c0000000004018019000000400240021000000000030304330000081b0430009c00000000030180190000006003300210000000000223019f00000000030004140000081b0430009c0000000003018019000000c001300210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000400200043d000000220320003900000006040000290000000000430435000008ad030000410000000000320435000000020320003900000000001304350000081b0400004100000000010004140000081b0310009c00000000010480190000081b0320009c0008081b0000004500000000020480190000004002200210000000c001100210000000000112019f000008ae011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d0000081b0320009c00000008030000290000000003024019000800000003001d0000000b03000029000008af0330009c00000fb80000213d000000000101043b00000060032000390000000b04000029000000000043043500000040032000390000000a040000290000000000430435000000200320003900000009040000290000000000430435000000000012043500000000000004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000008020000290000004002200210000000000121019f000008b0011001c70000000102000039206720620000040f000000000301001900000060033002700000081b03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000011a40000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b0000119d0000413d000000000605004b000011b20000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013880000613d00000000010004330000082202100198000013150000613d000000400300043d000008320200004100000000002304350000000402300039000000200400003900000000004204350000000c0410014f00000044023000390000081b010000410000081b0530009c000000000103401900000024033000390000004001100210000008b1011001c70000082204400198000013b50000c13d00000019040000390000000000430435000008b30300004100000000003204350000206900010430000008d6050000410000000a0600002900000000072b0049000000400870008c00000000080000190000000008054019000008d607700197000000000907004b00000000090000190000000009052019000008d60770009c000000000908c019000000000709004b000015c70000c13d000000400700043d000008a40870009c0000007d0000213d0000004008700039000000400080043f000000000821034f000000000808043b000008a30980009c000015c70000213d00000000088704360000002009200039000000000991034f000000000909043b000008a30a90009c000015c70000213d0000002006600039000000000098043500000000007604350000004002200039000000000742004b000011d00000413d000001c20000013d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d000700000002001d000008d50220009c0000007d0000213d000000000101043b000000000101041a00000007030000290000006002300039000000400020043f00000020043000390000000902000029000600000004001d000000000024043500000001020000390000000000230435000000400230003900000080011002700000089d01100197000500000002001d00000000001204350000000b0100002900000000001004350000000a01000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d00000007020000290000000002020433000000000202004b000000000101043b000000000201041a000008ff02200197000000010220c1bf000000060300002900000000030304330000000803300210000008d803300197000000000232019f0000000503000029000000000303043300000080033002100000090003300197000000000232019f000000000021041b000000400100043d0000000902000029000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d02000039000000020300003900000901040000410000000b050000292067205d0000040f0000000101200190000015c70000613d000000080100002920671b570000040f000010ae0000013d00000000010004150000000e0110008a0005000500100218000e00000000001d000008e5010000410000000000100439000000000100041000000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800202000039206720620000040f0000000102200190000015790000613d000000000101043b000000000101004b000013190000c13d0000000701000029000000ff0110018f000000010110008c0000000001000019000000010100603900000005020000290000000502200270000000000201001f0000131c0000c13d000001000100008a000000000200041a000000000112016f00000001011001bf000000040200006b000001dd0000613d000300010000003d000001e00000013d000000010300008a000000000334004b0000000c07000029000003e00000613d0000000103400039000000000423004b00000ce00000413d00000cf90000013d00000001041002700000000b214000f9000000000214004b0000000004018019000c00000004001d0000000b0140006b000003e00000413d000000080100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d0000000c030000290000000b02300069000000000101043b0000000001210019000000000101041a0000081b01100197000000090110006c000013830000a13d0000000003000019000b00000002001d00000e3d0000013d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d000008d50320009c0000007d0000213d000000000101043b0000006003200039000000400030043f000000000101041a00000080031002700000089d033001970000004004200039000900000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000089d01100197000700000001001d0000000000120435000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d0000001903000039000000000203041a000000000101043b0000001504000039000000000404041a00000822044001980000139d0000613d0000001705000039000000000505041a000000080550014f000008220550019700000000544500d9000000000541004b0000139c0000813d000000000102004b0000000004000019000003e00000c13d000013bb0000013d000000000101043b00000060032000390000000b040000290000000000430435000000400320003900000007040000290000000000430435000000200320003900000009040000290000000000430435000000000012043500000000000004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000008020000290000004002200210000000000121019f000008b0011001c70000000102000039206720620000040f000000000301001900000060033002700000081b03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000012ff0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000012f80000413d000000000605004b0000130d0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f000300000001035500000001022001900000135b0000613d0000000001000433000b00000001001d00000822011001980000136b0000c13d000000400100043d0000004402100039000008bc0300004100000e110000013d00000005010000290000000501100270000000000100001f000000400100043d0000006402100039000008e60300004100000000003204350000004402100039000008e7030000410000103b0000013d0000000103000039000000000103041a00000824011001970000000602000029000000000121019f000000000013041b000000400100043d00000000002104350000081b0500004100000000020004140000081b0420009c00000000020580190000081b0410009c00000000010580190000004001100210000000c002200210000000000112019f00000828011001c70000800d0200003900000826040000412067205d0000040f0000000101200190000015c70000613d00002710020000390000001801000039000200000001001d000000000021041b000000400100043d000500000002001d000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d020000390000000103000039000008b8040000412067205d0000040f0000000101200190000015c70000613d000000000100041a0000ff0001100190000001ea0000613d0000000c010000290000082201100198000013ac0000c13d000000400100043d0000004402100039000008fa0300004100000df00000013d000000400200043d0000001f0430018f0000000505300272000013680000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013600000413d000000000604004b00000d1f0000613d00000d120000013d00000000001004350000000901000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a0000000103200039000000000031041b0000000a0120006b000013980000c13d0000000b010000290000000c02000029206717400000040f0000000001000019000020680001042e000000010100008a000000000112004b000003e00000613d000000010320003900000e3d0000013d000000400200043d0000001f0430018f0000000505300272000013950000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000138d0000413d000000000604004b00000d1f0000613d00000d120000013d000000400100043d0000004402100039000008bb0300004100000aa20000013d0000000001410049000000000402004b0000000004000019000013bb0000613d0000000000300435000000000302004b000013ba0000613d000000010420008a0000090202200041000000000302041a000008a302300197000000000221004b0000000002040019000013a10000a13d0000008004300270000013bb0000013d000000070200006b0000141a0000c13d000000400100043d0000004402100039000008f90300004100000000003204350000002402100039000000170300003900000c280000013d0000001e040000390000000000430435000008b2030000410000000000320435000020690001043000000000040000190000001401000039000000000101041a000000000201004b00000a950000613d00000007324000b900000000211200d9000000090200002900000000020204330000089d022001970000000002210049000000000112004b00000000010000190000000101002039000000000101004b000000000200c0190009089d0020019c000013d60000c13d000000400100043d00000064021000390000090503000041000000000032043500000044021000390000090603000041000000000032043500000024021000390000002f03000039000007f60000013d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a00000080032002700000089d0330019700000009033000290000089d0430009c000003e00000213d000009030220019700000080033002100000090003300197000000000223019f000000000021041b0000001201000039000000000301041a0000000902300029000000000332004b000000000300001900000001030040390000000103300190000003e00000c13d000000000021041b000000080100002920671b570000040f0000001001000039000000000101041a00000822011001970000000802000029000000090300002920671a230000040f000000400100043d000000090200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d02000039000000020300003900000904040000410000000b050000292067205d0000040f0000000101200190000015c70000613d00000001010000390000000c02000029000000000012041b0000000001000019000020680001042e0000001002000039000000000302041a0000082403300197000000000113019f000000000012041b0000001101000039000c00000001001d0000000703000029000000000031041b000000800300043d000008290130009c0000007d0000213d0000001301000039000000000501041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f0000000105500190000001450000c13d000000200540008c000014440000413d0000001f0530003900000005055002700000089b065000410000089b05000041000000200730008c000000000506801900000000001004350000001f0440003900000005044002700000089b04400041000000000645004b000014440000813d000000000005041b0000000105500039000000000645004b000014400000413d000000200430008c0000144c0000413d00000000001004350000000b06300180000014580000c13d00000020050000390000089b04000041000014630000013d000000000403004b0000000004000019000014700000613d0000000304300210000000010500008a000000000445022f000000000454013f000000a00500043d000000000445016f0000000103300210000000000434019f000014700000013d0000089b040000410000002005000039000000000700001900000080085000390000000008080433000000000084041b000000200550003900000001044000390000002007700039000000000867004b0000145b0000413d000000000636004b0000146e0000813d0000000306300210000000f80660018f000000010700008a000000000667022f000000000676013f00000080055000390000000005050433000000000565016f000000000054041b000000010330021000000001043001bf000000000041041b0000001403000039000100000003001d0000000505000029000000000053041b000000000502041a0000000c02000029000000000602041a000000400200043d000000200320003900000060070000390000000000730435000000010740019000000001084002700000007f0380018f000000000308c01900000000006204350000001f0630008c00000000060000190000000106002039000000000664013f00000822055001970000000106600190000001450000c13d000000600620003900000000003604350000008006200039000000000707004b0000149b0000613d0000000000100435000000000103004b0000000001000019000014a10000613d0000089b0400004100000000010000190000000007610019000000000804041a000000000087043500000001044000390000002001100039000000000731004b000014930000413d000014a10000013d000001000100008a000000000114016f0000000000160435000000000103004b000000200100003900000000010060190000004003200039000000050400002900000000004304350000081b030000410000081b0420009c0000000002038019000000400220021000000080011000390000081b0410009c00000000010380190000006001100210000000000121019f00000000020004140000081b0420009c0000000002038019000000c002200210000000000121019f00000821011001c70000800d020000390000000203000039000008e9040000412067205d0000040f0000000101200190000015c70000613d0000000401000029000b08220010019b000000000100041a0000ff0001100190000001ea0000613d000000080100002900000822011001980000001602000039000000000302041a0000082403300197000000000313019f000000000032041b0000000002000019000014c80000613d00000822321001290000001504000039000000000304041a0000082403300197000000000223019f000800000004001d000000000024041b000000400200043d00000000001204350000081b0100004100000000030004140000081b0430009c00000000030180190000081b0420009c00000000020180190000004001200210000000c002300210000000000112019f00000828011001c70000800d020000390000000103000039000008ea040000412067205d0000040f0000000101200190000015c70000613d0000000801000029000000000101041a0000082201100198000014ef0000c13d0000000a010000290000000001010433000000000101004b000014f80000c13d000000400100043d0000004402100039000008f803000041000000000032043500000024021000390000000c0300002900000c280000013d0000000b0100006b000015530000c13d000000400100043d0000004402100039000008ec0300004100000000003204350000002402100039000000020300002900000c280000013d0000001902000039000000000102041a000700000002001d000000000002041b000000000201004b000015080000613d00000007020000290000000000200435000008a201100041000008ed0210009c000015080000413d000008a202000041000000000002041b0000000102200039000000000312004b000015040000413d0000000a010000290000000001010433000000000101004b000c00000000001d0000157a0000c13d0000000101000029000000000101041a0000000c0110006b000015c90000c13d000000000100041a0000ff0001100190000001ea0000613d0000001a010000390000000402000029000000000021041b000000400100043d00000000002104350000081b0400004100000000020004140000081b0320009c00000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d020000390000000103000039000c00000003001d000008d4040000412067205d0000040f0000000101200190000015c70000613d000000060600002900000010016002100000081f01100197000000000200041a0000082003200197000000000113019f000000000010041b00000000010004140000081b0310009c0000081b01008041000000c00110021000000821011001c7000000100220027000000822052001970000800d02000039000000030300003900000823040000412067205d0000040f0000000101200190000015c70000613d000000030100006b000006820000c13d000000000200041a000008e801200197000000000010041b000000400100043d0000000c0300002900000000003104350000081b0200004100000000050004140000081b0450009c00000000050280190000081b0410009c00000000010280190000004001100210000000c002500210000000000112019f00000828011001c70000800d0200003900000836040000410000067f0000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000000201004b000003e00000613d000008eb020000410000000000200439000000010110008a00000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000040110014f00000822011001970000001702000039000000000302041a0000082403300197000000000113019f000000000012041b000014e40000013d000000000001042f0005800d0000003d000b00000000001d000000000200001900000000040000190000000b0100002900000005011002100000000901100029000000000301043300000020013000390000000005010433000c08a30050019c000015d30000613d0000000005030433000808a30050019b000000080440006b000015da0000a13d0000000c0220006b000015e10000a13d0000000702000029000000000202041a000008290420009c0000007d0000213d00000001042000390000000705000029000000000045041b00000000005004350000000003030433000008a30330019700000000010104330000008001100210000000000131019f000008a202200041000000000012041b000000400100043d00000020021000390000000c0300002900000000003204350000000802000029000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f000008a8011001c700000002030000390000000502000029000008f1040000410000000b050000292067205d0000040f0000000101200190000015c70000613d0000000b02000029000b00010020003d0000000a0100002900000000010104330000000b0110006b0000000c0200002900000008040000290000157e0000413d0000000801000029000008f20110009c0000150d0000413d000000400100043d0000006402100039000008f30300004100000000003204350000004402100039000008f403000041000000000032043500000024021000390000002a03000039000007f60000013d00000000010000190000206900010430000000400100043d0000006402100039000008f60300004100000000003204350000004402100039000008f703000041000000000032043500000024021000390000002103000039000007f60000013d000000400100043d0000004402100039000008f503000041000000000032043500000024021000390000001c0300003900000c280000013d000000400100043d0000004402100039000008ee03000041000000000032043500000024021000390000001a0300003900000c280000013d000000400100043d0000006402100039000008ef0300004100000000003204350000004402100039000008f003000041000000000032043500000024021000390000002503000039000007f60000013d00000000430104340000000001320436000000000203004b000015f70000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000532004b000015f00000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000020030000390000000004310436000000003202043400000000002404350000004001100039000000000402004b0000160d0000613d000000000400001900000000051400190000000006430019000000000606043300000000006504350000002004400039000000000524004b000016060000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d000008d602000041000000830310008c00000000030000190000000003022019000008d604100197000000000504004b0000000002008019000008d60440009c000000000203c019000000000202004b0000163b0000613d00000002040003670000000402400370000000000602043b0000002402400370000000000202043b000008220320009c0000163b0000213d0000004403400370000000000303043b0000006405400370000000000705043b000008290570009c0000163b0000213d0000002305700039000000000515004b0000163b0000813d0000000405700039000000000454034f000000000504043b000008290450009c0000163b0000213d000000050850021000000024047000390000000007840019000000000117004b0000163b0000213d0000000001060019000000000001042d00000000010000190000206900010430000009120210009c000016420000813d0000004001100039000000400010043f000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000009130210009c0000164d0000813d0000006001100039000000400010043f000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000008290310009c000016600000213d0000000102200190000016600000c13d000000400010043f000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a601000041000020690001043000000000030100190000001f01300039000008d604000041000000000521004b00000000050000190000000005044019000008d606200197000008d601100197000000000761004b000000000400a019000000000161013f000008d60110009c000000000405c019000000000104004b000016b30000613d0000000204000367000000000134034f000000000501043b000008270150009c000016b50000813d00000005015002100000003f01100039000008a006100197000000400100043d0000000006610019000000000716004b00000000070000190000000107004039000008290860009c000016b50000213d0000000107700190000016b50000c13d000000400060043f0000000000510435000000060550021000000020033000390000000005530019000000000625004b000016b30000213d000000000653004b000016b20000813d000008d60600004100000000070100190000000008320049000000400980008c00000000090000190000000009064019000008d608800197000000000a08004b000000000a000019000000000a062019000008d60880009c000000000a09c01900000000080a004b000016b30000c13d000000400800043d000008a40980009c000016b50000213d0000004009800039000000400090043f000000000934034f000000000909043b000008a30a90009c000016b30000213d0000000009980436000000200a300039000000000aa4034f000000000a0a043b000008a30ba0009c000016b30000213d00000020077000390000000000a9043500000000008704350000004003300039000000000853004b000016910000413d000000000001042d00000000010000190000206900010430000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300000000031010434000008a30110019700000000011204360000000002030433000008a3022001970000000000210435000000000001042d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000016c90000c13d000000000001042d000000400100043d0000004402100039000008c603000041000000000032043500000832020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c7000020690001043000000010021002100000081f02200197000000000300041a0000082004300197000000000224019f000000000020041b0000081b0200004100000000040004140000081b0540009c0000000004028019000000c002400210000008220610019700000821012001c7000000100230027000000822052001970000800d02000039000000030300003900000823040000412067205d0000040f0000000101200190000016f00000613d000000000001042d0000000001000019000020690001043000000822022001970000000000200435000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000017010000613d000000000101043b000000000001042d00000000010000190000206900010430000000400100043d000009120210009c0000170c0000813d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300001000000000002000000000301041a000100000002001d000000000223004b000017250000a13d00000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f00000001022001900000172b0000613d000000000101043b0000000101100029000000000001042d000008a50100004100000000001004350000003201000039000000040010043f000008a6010000410000206900010430000000000100001900002069000104300000000002010019000000400100043d000009120310009c0000173a0000813d0000004003100039000000400030043f000000000202041a0000002003100039000000200420027000000000004304350000081b022001970000000000210435000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300005000000000002000500000002001d0000082201100197000200000001001d00000000001004350000000b01000039000300000001001d000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f00000001022001900000178a0000613d000000000101043b000000000101041a000400000001001d0000000201000039000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000403000029000408220030019b00000001022001900000178a0000613d000000000101043b000000000101041a000100000001001d0000000301000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f00000001022001900000178a0000613d00000005020000290000082207200197000000000101043b000000000201041a0000082402200197000000000272019f000000000021041b00000000010004140000081b0210009c0000081b01008041000000c00110021000000821011001c70000800d0200003900000004030000390000091404000041000000020500002900000004060000292067205d0000040f00000001012001900000178a0000613d0000000401000029000000050200002900000001030000292067178c0000040f000000000001042d000000000100001900002069000104300009000000000002000900000003001d00000822031001970000082201200197000700000001001d000800000003001d000000000113004b000019060000613d000000090100006b000019060000613d000000080100006b000018480000613d000000080100002900000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000201043b000000000102041a000600000001001d000000000101004b000019300000613d000500000002001d00000000002004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000400200043d000009120320009c000019330000813d000000000101043b0000004003200039000000400030043f000000060300002900030001003000920000000301100029000000000101041a0000081b03100197000000000332043600000020041002700000000000430435000600000004001d000000090140006c0000193e0000413d0000000001020433000400000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000004030000290000081b033001970000000102200190000019090000613d000000000101043b000008e00210009c0000190a0000813d0000000604000029000000090240006a000000000113004b000400000002001d000017f70000c13d000008990120009c000019110000213d000000050100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000301100029000000000201041a0000081b0220019700000004040000290000002003400210000000000232019f000000000021041b000018320000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000019090000613d000000000101043b000008ca0210009c0000190a0000213d000008cc0210009c00000004030000290000191b0000813d000009150230009c000019110000813d000000400400043d000008a40240009c000019330000213d0000004002400039000000400020043f0000000001140436000300000001001d00000000003104350000000501000029000000000201041a000008290120009c000019330000213d000200000004001d000100000002001d00000001012000390000000502000029000000000012041b00000000002004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000101100029000000020200002900000000020204330000081b02200197000000030300002900000000030304330000002003300210000000000223019f000000000021041b0000000404000029000000400100043d00000020021000390000000000420435000000060200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f000008a8011001c70000800d020000390000000203000039000009160400004100000008050000292067205d0000040f0000000101200190000019070000613d000000070100006b000019060000613d000000070100002900000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000301043b000000000203041a000000000102004b000800000003001d000018ab0000613d000600000002001d00000000003004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000400200043d000008a40320009c000019330000213d000000000101043b0000004003200039000000400030043f000000060300002900040001003000920000000401100029000000000101041a0000081b031001970000000003320436000000200410027000000000004304350000000901400029000900000001001d000600000004001d000000000141004b0000000001000019000000010100403900000001011001900000193e0000c13d0000000001020433000500000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000005030000290000081b033001970000000102200190000019090000613d000000000101043b000008ca0210009c0000190a0000213d000000000113004b000018b50000c13d0000000901000029000008990110009c0000000801000029000019110000213d00000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000401100029000000000201041a0000081b0220019700000009030000290000002003300210000000000232019f000018ee0000013d000000400100043d000008a40210009c000019330000213d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000600000000001d000018b50000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000019090000613d000000000101043b000008ca0210009c0000190a0000213d0000081b0210009c00000008030000290000191b0000213d0000000902000029000008990220009c000019110000213d000000400400043d000008a40240009c000019330000213d0000004002400039000000400020043f00000000021404360000000901000029000500000002001d0000000000120435000000000203041a000008290120009c000019330000213d000400000004001d000300000002001d0000000101200039000000000013041b00000000003004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000301100029000000040200002900000000020204330000081b02200197000000050300002900000000030304330000002003300210000000000223019f000000000021041b0000000604000029000000400100043d00000020021000390000000903000029000000000032043500000000004104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f000008a8011001c70000800d020000390000000203000039000009160400004100000007050000292067205d0000040f0000000101200190000019070000613d000000000001042d00000000010000190000206900010430000000000001042f000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e303000041000019210000013d000000400100043d00000064021000390000091703000041000000000032043500000044021000390000091803000041000000000032043500000024021000390000002703000039000019240000013d000000400100043d00000064021000390000091903000041000000000032043500000044021000390000091a030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000000400100043d000008a40210009c000019390000a13d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300000004002100039000000400020043f000000200210003900000000000204350000000000010435000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300004000000000002000008ab0100004100000000001004390000000001000412000300000001001d0000000400100443000000400100003900000024001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b00000822011001970000000002000410000200000002001d000000000112004b0000198d0000c13d000008ab01000041000000000010043900000003010000290000000400100443000000200100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b000400000001001d0000082e01000041000000000010043900000000010004140000081b0210009c0000081b01008041000000c0011002100000082f011001c70000800b02000039206720620000040f0000000102200190000019ea0000613d000000000101043b000000040110006c0000198d0000c13d000008ab0100004100000000001004390000000301000029000000040010044300000024000004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b000000000001042d000000400100043d000400000001001d00000020021000390000083001000041000100000002001d0000000000120435000008ab01000041000000000010043900000003010000290000000400100443000000600100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b000000040200002900000040022000390000000000120435000008ab010000410000000000100439000000030100002900000004001004430000008001000039000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b0000000402000029000000600220003900000000001204350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000019ea0000613d000000000101043b0000000404000029000000a0024000390000000203000029000000000032043500000080024000390000000000120435000000a00100003900000000001404350000091b0140009c000019eb0000813d0000000403000029000000c001300039000000400010043f0000081b0100004100000001040000290000081b0240009c0000000004018019000000400240021000000000030304330000081b0430009c00000000030180190000006003300210000000000223019f00000000030004140000081b0430009c0000000003018019000000c001300210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000019f10000613d000000000101043b000000000001042d000000000001042f000008a50100004100000000001004350000004101000039000000040010043f000008a601000041000020690001043000000000010000190000206900010430000008e00210009c000019f60000813d000000000001042d000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e3030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000008cc0210009c00001a0e0000813d000000000001042d000000400100043d00000064021000390000091903000041000000000032043500000044021000390000091a030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c700002069000104300005000000000002000000400400043d0000004405400039000000000035043500000020034000390000091c050000410000000000530435000008220220019700000024054000390000000000250435000000440200003900000000002404350000091d0240009c00001b0a0000813d00000822021001970000008005400039000000400050043f000008310140009c00001b0a0000213d000000c001400039000000400010043f0000002001000039000300000001001d0000000000150435000000a0014000390000091e06000041000000000061043500000000060404330000000001000414000000040420008c00001a730000c13d000000010100003200001ab40000613d000008290210009c00001b0a0000213d0000001f02100039000000200300008a000000000232016f0000003f02200039000000000232016f000000400900043d0000000002290019000000000392004b00000000030000190000000103004039000008290420009c00001b0a0000213d000000010330019000001b0a0000c13d000000400020043f0000001f0210018f00000000031904360000000304000367000000050110027200001a630000613d000000000500001900000005065002100000000007630019000000000664034f000000000606043b00000000006704350000000105500039000000000615004b00001a5b0000413d000000000502004b00001ab50000613d0000000501100210000000000414034f00000000011300190000000302200210000000000301043300000000032301cf000000000323022f000000000404043b0000010002200089000000000424022f00000000022401cf000000000232019f000000000021043500001ab50000013d000100000005001d0000081b040000410000081b0530009c000000000304801900000040033002100000081b0560009c00000000060480190000006005600210000000000535019f0000081b0310009c0000000001048019000000c001100210000000000115019f000200000002001d2067205d0000040f0003000000010355000000000301001900000060033002700001081b0030019d0000081b0530019800001acd0000613d0000001f035000390000091f033001970000003f033000390000092003300197000000400900043d0000000003390019000000000493004b00000000040000190000000104004039000008290630009c000000020a00002900001b0a0000213d000000010440019000001b0a0000c13d000000400030043f0000001f0450018f0000000003590436000000050550027200001aa40000613d000000000600001900000005076002100000000008730019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00001a9c0000413d000000000604004b00001ad00000613d0000000505500210000000000151034f00000000055300190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500001ad00000013d00000060090000390000000002000415000000050220008a00000005022002100000000001090433000000000301004b00001ad80000c13d000200000009001d000008e5010000410000000000100439000000040100003900000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800202000039206720620000040f000000010220019000001b3b0000613d0000000002000415000000050220008a00001aeb0000013d00000060090000390000008003000039000000020a0000290000000001090433000000010220019000001b270000613d0000000002000415000000040220008a0000000502200210000000000301004b00001adb0000613d0000000502200270000000000209001f00001af50000013d000200000009001d000008e50100004100000000001004390000000400a004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800202000039206720620000040f000000010220019000001b3b0000613d0000000002000415000000040220008a0000000502200210000000000101043b000000000101004b000000020900002900001b3c0000613d00000000010904330000000502200270000000000209001f000000000201004b00001b090000613d000008d602000041000000200310008c00000000030000190000000003024019000008d601100197000000000401004b000000000200a019000008d60110009c000000000203c019000000000102004b00001b100000c13d00000020019000390000000001010433000000000201004b0000000002000019000000010200c039000000000221004b00001b100000c13d000000000101004b00001b120000613d000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a601000041000020690001043000000000010000190000206900010430000000400100043d00000064021000390000092103000041000000000032043500000044021000390000092203000041000000000032043500000024021000390000002a030000390000000000320435000008320200004100000000002104350000000402100039000000030300002900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000000000201004b00001b4e0000c13d000000400200043d000300000002001d0000083201000041000000000012043500000004012000390000000102000029206715fe0000040f000000030400002900000000014100490000081b020000410000081b0310009c00000000010280190000081b0340009c000000000402801900000040024002100000006001100210000000000121019f0000206900010430000000000001042f000000400100043d00000044021000390000092303000041000000000032043500000024021000390000001d030000390000000000320435000008320200004100000000002104350000000402100039000000030300002900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c700002069000104300000081b020000410000081b0410009c00000000010280190000081b0430009c000000000302801900000040023002100000006001100210000000000121019f000020690001043000050000000000020000082201100197000500000001001d00000000001004350000000201000039000300000001001d000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000101041a000400000001001d000000050100002900000000001004350000000f01000039000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000400200043d000009130320009c00001d3a0000813d000000000101043b0000006003200039000000400030043f000000000301041a00000080013002700000089d0110019700000040042000390000000000140435000000ff043001900000000004000019000000010400c039000000000442043600000008023002700000089d022001970000000000240435000000000312004b0000000003000019000000050500002900001b9c0000a13d0000000002120049000009240120009c00001d750000813d0000001801000039000000000301041a00000000412300a900000000422100d9000000000232004b00001d750000c13d0000001402000039000000000202041a000000000302004b00001d1e0000613d00000000132100d90000000402000029000000000132004b00001c2b0000a13d000200000003001d000000000105004b00001d240000613d00000000005004350000000301000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d00000002030000290000000402300069000000000101043b000000000101041a000400000002001d000200000001001d000000000121004b00001d2e0000413d000000050100002900000000001004350000000301000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d00000004030000290000000202300069000000000101043b000000000021041b0000000401000039000000000201041a0000000002320049000000000021041b000000400100043d000000000031043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d0200003900000003030000390000092504000041000000050500002900000000060000192067205d0000040f000000010120019000001d0a0000613d000000050100002900000000001004350000000b01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000101041a00000000000004350000092602000041000000000202041a0000082201100197000008220220019700000004030000292067178c0000040f000000400100043d0000000d04000039000000000204041a000000000302004b00001d380000613d0000000000400435000008a40310009c00001d3a0000213d000200000004001d0000004003100039000000400030043f000008cf02200041000100000002001d000000000202041a0000081b03200197000000000331043600000020042002700000000000430435000300000004001d000000040240006c00001d750000413d0000000001010433000500000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000005030000290000081b03300197000000010220019000001d0c0000613d000000000101043b000008ca0210009c00001d0d0000213d0000000304000029000000040240006a000000000113004b00001cb60000c13d000008990120009c000000020100002900001d140000213d00000000001004350000002001200210000000010300002900001cb10000013d000000000132004b00001cb50000813d000000000105004b00001d550000613d00040000002300510000000403000039000000000203041a0000000401200029000000000221004b00000000020000190000000102004039000000010220019000001d750000c13d000200000003001d000000000013041b00000000005004350000000301000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d000000000031043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d0200003900000003030000390000092504000041000000000500001900000005060000292067205d0000040f000000010120019000001d0a0000613d0000000b01000039000000200010043f0000092601000041000000000101041a000300000001001d000000050100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000201041a00000003010000290000082201100197000008220220019700000004030000292067178c0000040f000000400100043d0000000202000029000000000202041a000009150220009c00001d670000813d0000000d04000039000000000204041a000000000302004b000500000004001d00001cd70000613d0000000000400435000008a40310009c00001d3a0000213d0000004003100039000000400030043f000008cf02200041000200000002001d000000000202041a0000081b03200197000000000331043600000020022002700000000000230435000400040020002d000000040220006b00000000020000190000000102004039000000010220019000001d750000c13d0000000001010433000300000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000003030000290000081b03300197000000010220019000001d0c0000613d000000000101043b000008e00210009c00001d0d0000813d000000000113004b000000050200002900001cdf0000c13d0000000401000029000008990110009c00001d140000213d0000000000200435000000040100002900000020011002100000000203000029000000000203041a0000081b02200197000000000112019f000000000013041b000000000001042d000500000002001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f000000010220019000001d0c0000613d000000000101043b000008ca0210009c00001d0d0000213d0000081b0210009c0000000205000029000000050400002900001d400000213d000008990240009c00001d140000213d000000400200043d000008a40320009c00001d3a0000213d0000004003200039000000400030043f00000000031204360000000000430435000000000105041a000008290410009c00001cff0000a13d00001d3a0000013d000008a40210009c00001d3a0000213d0000004002100039000000400020043f00000020021000390000000000020435000000000001043500001cdf0000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f000000010220019000001d0c0000613d000000000101043b000008ca0210009c00001d0d0000213d000008cc0210009c000000050500002900001d400000813d0000000402000029000009150220009c00001d140000813d000000400200043d000008a40320009c00001d3a0000213d0000004003200039000000400030043f000000000312043600000004010000290000000000130435000000000105041a000008290410009c00001d3a0000213d0000000104100039000000000045041b000000000050043500000000020204330000081b0220019700000000030304330000002003300210000000000223019f000008ce01100041000000000021041b000000000001042d00000000010000190000206900010430000000000001042f000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e30300004100001d460000013d000000400100043d0000006402100039000009170300004100000000003204350000004402100039000009180300004100000000003204350000002402100039000000270300003900001d490000013d000008a50100004100000000001004350000001201000039000000040010043f000008a6010000410000206900010430000000400100043d0000006402100039000008f603000041000000000032043500000044021000390000092c0300004100000000003204350000002402100039000000210300003900001d490000013d000000400100043d00000064021000390000092a03000041000000000032043500000044021000390000092b0300004100000000003204350000002402100039000000220300003900001d490000013d000008a40210009c00001d700000a13d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000400100043d00000064021000390000091903000041000000000032043500000044021000390000091a030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000000400100043d00000044021000390000092903000041000000000032043500000024021000390000001f030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c700002069000104300000006402100039000009270300004100000000003204350000004402100039000009280300004100000000003204350000002402100039000000300300003900001d490000013d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300003000000000002000100000001001d0000082201100197000300000001001d00000000001004350000000f01000039000200000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001df60000613d000000000101043b000000000101041a000000ff0110019000001df80000613d000000030100002900000000001004350000000201000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001df60000613d000000400200043d000009130320009c00001e0d0000813d000000000101043b0000006003200039000000400030043f000000000101041a00000080031002700000089d033001970000004004200039000300000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000089d01100197000200000001001d0000000000120435000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f000000010220019000001e130000613d0000001903000039000000000203041a000000000101043b0000001504000039000000000404041a000008220440019800001dd70000613d0000001705000039000000000505041a000000010550014f000008220550019700000000544500d9000000000541004b00001dd60000813d000000000102004b000000000100001900001de60000613d000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300000000001410049000000000402004b00001de50000613d0000000000300435000000000302004b00001de50000613d000000010420008a0000090202200041000000000302041a000008a302300197000000000221004b000000000204001900001dda0000a13d000000800130027000001de60000013d00000000010000190000001402000039000000000202041a000000000302004b00001e140000613d00000002311000b900000000122100d9000000030100002900000000010104330000089d011001970000000001120049000000000221004b00000000020000190000000102002039000000000202004b000000000100c019000000000001042d00000000010000190000206900010430000000400100043d000000640210003900000907030000410000000000320435000000440210003900000908030000410000000000320435000000240210003900000022030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000000001042f000008a50100004100000000001004350000001201000039000000040010043f000008a60100004100002069000104300000001502000039000000000202041a000008220220019800001e240000613d0000001703000039000000000303041a000000000113013f000008220110019700000000212100d9000000000001042d0000000001000019000000000001042d0000001904000039000000000304041a0000001505000039000000000505041a000008220550019800001e380000613d0000001706000039000000000606041a000000000116013f000008220110019700000000515100d9000000000512004b00001e370000813d000000000103004b000000000100001900001e4f0000c13d000000000001042d00000000021200490000000001030019000000000501004b00001e470000613d000000000503004b00001e490000613d0000000000400435000000010610008a0000090201100041000000000501041a000008a301500197000000000112004b000000000106001900001e390000a13d0000008001500270000000000001042d0000000001000019000000000001042d000008a50100004100000000001004350000003201000039000000040010043f000008a6010000410000206900010430000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300000000002010019000000400100043d000009120310009c00001e620000813d0000004003100039000000400030043f000000000202041a000000200310003900000080042002700000000000430435000008a3022001970000000000210435000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300007000000000002000400000001001d0000000021010434000300000002001d000000000101004b00001f090000613d0000001906000039000000000106041a000000000006041b000000000201004b00001e7c0000613d0000000000600435000008a201100041000008ed0210009c00001e7c0000413d000008a202000041000000000002041b0000000102200039000000000312004b00001e780000413d00000004010000290000000001010433000000000101004b00001ecd0000613d0002800d0000003d000000000500001900000000020000190000000004000019000100000006001d00000005015002100000000301100029000000000301043300000020013000390000000007010433000008a30870019800001ed30000613d0000000007030433000008a307700197000000000447004b00001ee00000a13d000000000228004b00001ef20000a13d000000000206041a000008270420009c00001eda0000813d0000000104200039000000000046041b00000000006004350000000003030433000008a30330019700000000010104330000008001100210000000000131019f000008a202200041000000000012041b000000400100043d00000020021000390000000000820435000000000071043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f000008a8011001c700000002030000390000000202000029000008f104000041000600000005001d000700000008001d000500000007001d2067205d0000040f000000010120019000001f070000613d0000000605000029000000010550003900000004010000290000000001010433000000000115004b0000000703000029000000000203001900000005010000290000000004010019000000010600002900001e850000413d000008f20110009c00001ece0000413d000000400100043d0000006402100039000008f30300004100000000003204350000004402100039000008f403000041000000000032043500000024021000390000002a0300003900001efb0000013d00000000030000190000001401000039000000000101041a000000000113004b00001f100000c13d000000000001042d000000400100043d0000004402100039000008f503000041000000000032043500000024021000390000001c0300003900001ee60000013d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000400100043d0000004402100039000008ee03000041000000000032043500000024021000390000001a030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c70000206900010430000000400100043d0000006402100039000008ef0300004100000000003204350000004402100039000008f0030000410000000000320435000000240210003900000025030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c7000020690001043000000000010000190000206900010430000000400100043d0000004402100039000008f80300004100000000003204350000002402100039000000110300003900001ee60000013d000000400100043d0000006402100039000008f60300004100000000003204350000004402100039000008f70300004100000000003204350000002402100039000000210300003900001efb0000013d0000006003300210000000200510003900000000003504350000003403100039000000000043043500000000002104350000005401100039000000000001042d000008270420009c00001f420000813d00000005052002100000003f04500039000008a006400197000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000008290860009c00001f420000213d000000010770019000001f420000c13d000000400060043f00000000002404350000000002150019000000000332004b00001f480000213d000000000312004b00001f400000a13d00000002030003670000000005040019000000000613034f000000000606043b000000200550003900000000006504350000002001100039000000000621004b00001f390000413d0000000001040019000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000000100001900002069000104300007000000000002000700000002001d000009240220009c00001fab0000813d000400000001001d0000082201100197000600000001001d00000000001004350000000f01000039000500000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001fa90000613d0000000603000029000000400400043d000009130240009c00001fc00000813d000000000101043b000000000101041a0000006002400039000000400020043f00000020054000390000000702000029000200000005001d000000000025043500000001020000390000000000240435000300000004001d000000400240003900000080011002700000089d01100197000100000002001d000000000012043500000000003004350000000501000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001fa90000613d00000003020000290000000002020433000000000202004b000000000101043b000000000201041a000008ff02200197000000010220c1bf000000020300002900000000030304330000000803300210000008d803300197000000000232019f0000000103000029000000000303043300000080033002100000090003300197000000000232019f000000000021041b000000400100043d0000000702000029000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d020000390000000203000039000009010400004100000006050000292067205d0000040f000000010120019000001fa90000613d000000040100002920671b570000040f000000000001042d00000000010000190000206900010430000000400100043d00000064021000390000092d03000041000000000032043500000044021000390000092e03000041000000000032043500000024021000390000002c030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000500000000000200000000030200190000001a02000039000000000202041a000100000002001d000300000003001d0000000032030434000400000003001d000000000202004b00001ff60000613d000280100000003d0000000003000019000500000003001d000000050230021000000004022000290000000002020433000000000321004b00001fe40000813d0000000000100435000000200020043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000000202000029206720620000040f000000010220019000001ff90000613d00001fef0000013d0000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001ff90000613d0000000503000029000000000101043b000000010330003900000003020000290000000002020433000000000223004b00001fd20000413d000000010110006c00001ffb0000c13d000000000001042d00000000010000190000206900010430000000400100043d0000004402100039000008fe03000041000000000032043500000024021000390000000d030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c7000020690001043000000822011001970000000103000039000000000203041a0000082402200197000000000212019f000000000023041b000000400200043d00000000001204350000081b0100004100000000040004140000081b0540009c00000000040180190000081b0520009c00000000020180190000004001200210000000c002400210000000000112019f00000828011001c70000800d0200003900000826040000412067205d0000040f0000000101200190000020250000613d000000000001042d00000000010000190000206900010430000000000001042f0000081b030000410000081b0410009c000000000103801900000040011002100000081b0420009c00000000020380190000006002200210000000000112019f00000000020004140000081b0420009c0000000002038019000000c002200210000000000112019f00000821011001c70000801002000039206720620000040f00000001022001900000203c0000613d000000000101043b000000000001042d0000000001000019000020690001043000000000050100190000000000200439000000050130008c0000204c0000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000631004b000020440000413d0000081b0100004100000000020004140000081b0420009c00000000020180190000081b0430009c00000000030180190000006001300210000000c002200210000000000112019f0000092f011001c70000000002050019206720620000040f00000001022001900000205c0000613d000000000101043b000000000001042d000000000001042f00002060002104210000000102000039000000000001042d0000000002000019000000000001042d00002065002104230000000102000039000000000001042d0000000002000019000000000001042d0000206700000432000020680001042e00002069000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff496e7465726e616c20766f746520747261636b657200000000000000000000004956540000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff0000000000000000000000000000000000000000ffff0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000020000002600000000000000000ccdd1baf560d2682736fa25752c8ccc0c5fc4079b245b0acf7389776308d5b1f00000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3020000000000000000000000000000000000000000000180000000000000000002000000000000000000000000000000000000000000024000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b02000002000000000000000000000000000000040000000000000000000000008b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f000000000000000000000000000000000000000000000000ffffffffffffff3f08c379a000000000000000000000000000000000000000000000000000000000616c697a696e6700000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e69746900000000000000000000000000000000000000840000000000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249800000002000000000000000000000000000002000000010000000000000000000000000000000000000000000000000000000000000000000000000091ddadf300000000000000000000000000000000000000000000000000000000c955725400000000000000000000000000000000000000000000000000000000e85858d800000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000fc0c546900000000000000000000000000000000000000000000000000000000fc0c546a00000000000000000000000000000000000000000000000000000000ffa1ad7400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f56c854700000000000000000000000000000000000000000000000000000000eac989f700000000000000000000000000000000000000000000000000000000eac989f800000000000000000000000000000000000000000000000000000000f1127ed800000000000000000000000000000000000000000000000000000000e85858d900000000000000000000000000000000000000000000000000000000e90a182f00000000000000000000000000000000000000000000000000000000dd62ed3d00000000000000000000000000000000000000000000000000000000e12f3a6000000000000000000000000000000000000000000000000000000000e12f3a6100000000000000000000000000000000000000000000000000000000e834a83400000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000de032f5800000000000000000000000000000000000000000000000000000000d972e8ac00000000000000000000000000000000000000000000000000000000d972e8ad00000000000000000000000000000000000000000000000000000000dc2f511b00000000000000000000000000000000000000000000000000000000c955725500000000000000000000000000000000000000000000000000000000d505accf00000000000000000000000000000000000000000000000000000000a4ef1f7700000000000000000000000000000000000000000000000000000000bb22dcca00000000000000000000000000000000000000000000000000000000c6e8d98100000000000000000000000000000000000000000000000000000000c6e8d98200000000000000000000000000000000000000000000000000000000c78d598500000000000000000000000000000000000000000000000000000000bb22dccb00000000000000000000000000000000000000000000000000000000c3cda52000000000000000000000000000000000000000000000000000000000ab803a7500000000000000000000000000000000000000000000000000000000ab803a7600000000000000000000000000000000000000000000000000000000b6d8f79f00000000000000000000000000000000000000000000000000000000a4ef1f7800000000000000000000000000000000000000000000000000000000a9059cbb000000000000000000000000000000000000000000000000000000009ab24eaf00000000000000000000000000000000000000000000000000000000a3f4df7d00000000000000000000000000000000000000000000000000000000a3f4df7e00000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000009ab24eb0000000000000000000000000000000000000000000000000000000009b642de1000000000000000000000000000000000000000000000000000000009691cab4000000000000000000000000000000000000000000000000000000009691cab5000000000000000000000000000000000000000000000000000000009a0e7d660000000000000000000000000000000000000000000000000000000091ddadf40000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000003a46b1a70000000000000000000000000000000000000000000000000000000070a08230000000000000000000000000000000000000000000000000000000007ecebdff000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000008e539e8c000000000000000000000000000000000000000000000000000000007ecebe000000000000000000000000000000000000000000000000000000000084b0196e0000000000000000000000000000000000000000000000000000000075aa9bc50000000000000000000000000000000000000000000000000000000075aa9bc6000000000000000000000000000000000000000000000000000000007cb647590000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000715018a600000000000000000000000000000000000000000000000000000000587cde1d00000000000000000000000000000000000000000000000000000000684de1f400000000000000000000000000000000000000000000000000000000684de1f5000000000000000000000000000000000000000000000000000000006fcfff4500000000000000000000000000000000000000000000000000000000587cde1e000000000000000000000000000000000000000000000000000000005c19a95c00000000000000000000000000000000000000000000000000000000495906560000000000000000000000000000000000000000000000000000000049590657000000000000000000000000000000000000000000000000000000004bf5d7e9000000000000000000000000000000000000000000000000000000003a46b1a8000000000000000000000000000000000000000000000000000000003cf3a0250000000000000000000000000000000000000000000000000000000023b872dc00000000000000000000000000000000000000000000000000000000313ce566000000000000000000000000000000000000000000000000000000003644e514000000000000000000000000000000000000000000000000000000003644e515000000000000000000000000000000000000000000000000000000003950935100000000000000000000000000000000000000000000000000000000313ce567000000000000000000000000000000000000000000000000000000003480e6ab000000000000000000000000000000000000000000000000000000002ddbd139000000000000000000000000000000000000000000000000000000002ddbd13a000000000000000000000000000000000000000000000000000000002e7ba6ef0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000276801ec00000000000000000000000000000000000000000000000000000000144fa6d6000000000000000000000000000000000000000000000000000000001be1955f000000000000000000000000000000000000000000000000000000001be19560000000000000000000000000000000000000000000000000000000001f8d1d5000000000000000000000000000000000000000000000000000000000144fa6d70000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000000000000000000000000000000000000f56b96c00000000000000000000000000000000000000200000008000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000004000000000000000000000000066de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090f4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d0000000000000000000000000000000000ffffffffffffffffffffffffffffff000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c969500000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000000000000000000000000000000000000400000000000000000000000006e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9000000000000000000000000000000000000000000000000ffffffffffffff1f310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000190100000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000420000000000000000000000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a00000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000006400000000000000000000000045524332305065726d69743a20696e76616c6964207369676e6174757265000064697361626c656420666f7220766f74696e6720706f77657200000000000000756500000000000000000000000000000000000000000000000000000000000045434453413a20696e76616c6964207369676e6174757265202773272076616c45524332305065726d69743a206578706972656420646561646c696e6500000002000000000000000000000000000000000000200000008000000000000000006c339c0bee516a4df5d7074ba7a974856d609f83666e915aa4a0f90e06989dc5e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf000000000000000000000000000000000000000000000000ffffffffffffff5f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000045434453413a20696e76616c6964207369676e617475726500000000000000004552433230566f7465733a207369676e617475726520657870697265640000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000005472616e73666572206661696c65642e000000000000000000000000000000003b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000000000000000000000000000000000000000000000000000005472616e63686556657374696e674d65726b6c654469737472696275746f72000000000000000000000000000000000000000000000000c000000000000000004f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572d70c1392a974224e639e7a9607dcb2c766826aecfe2dc356f442ce0488b01e1ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f42cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd10000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000010000d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4b3512b0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf0f00000000000000000000000000000000000000000000000000000000000000914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a46000000000000000000000000000000000000000000000000ffffffffffffff9f8000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000ff00000000000000000000000000000000ffffffffffffffffffffffffffffff006f6e5265636f726420746f74616c00000000000000000000000000000000000064656372656173652067726561746572207468616e20646973747269627574697220746f74616c0000000000000000000000000000000000000000000000000064656372656173652067726561746572207468616e206469737472696275746fd81661cef4e40e0f1f97384c033d606e4d6b570554fc3524568d8f9fc84c838861646a7573746d656e74203e206d61782075696e7431323000000000000000006d75737420696e697469616c697a65206265666f72652061646a757374696e6700000000000000000000000000000000000000000000000000010000000000006d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000382062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e20344552433230566f7465733a20667574757265206c6f6f6b7570000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c726561ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff433127dedcff849792656a12f4a9dbc0efeb80df5cce6310f53481a93cd71c71dccb8d94a5bbd764ed844afa20f2581be18d3fa84b36855e86a8f0c9316cba7d80b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3492064656d616e64206d6f72652072616e646f6d6e6573730000000000000000944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96967472616e6368652074696d65206d75737420696e63726561736500000000000072656173650000000000000000000000000000000000000000000000000000007472616e63686520766573746564206672616374696f6e206d75737420696e635104929ca78e46ba25dca9557731ec873a03ae745d3ee194d262cc4820662a1c00000000000000000000000000000000000000000000000000000000f4865701616e20312032313030290000000000000000000000000000000000000000000076657374696e6720656e6473206166746572203431303234343438303020284a7472616e63686520766573746564206672616374696f6e203d3d20300000000073000000000000000000000000000000000000000000000000000000000000006c617374207472616e636865206d757374207665737420616c6c20746f6b656e7472616e636865732072657175697265640000000000000000000000000000004469737472696275746f723a20746f74616c20697320300000000000000000004469737472696275746f723a20746f6b656e20697320616464726573732830296e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420690200000000000000000000000000000000000054000000a00000000000000000696e76616c69642070726f6f6600000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000db598eb8e0a3d3d5c2e02e4cab1ee8b65bb20e48fc7b42f4c76272de4cdd2434944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9694ff000000000000000000000000000000ffffffffffffffffffffffffffffffff47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d46d61626c65207269676874206e6f7700000000000000000000000000000000004469737472696275746f723a206e6f206d6f726520746f6b656e7320636c616965640000000000000000000000000000000000000000000000000000000000004469737472696275746f723a20636c61696d206e6f7420696e697469616c697a5265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a20696e73756666696369656e7420616c6c6f77616e6365000000ac657d3615bd618ee537848e2b33acd2a9df67d4776485ab6922b0421d324d2970a082310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000000000000000000000000000000000000000064000000800000000000000000efc1fd16ea80a922086ee4e995739d59b025c1bcea6d1f67855747480c83214b746f6b656e206973206164647265737328302900000000000000000000000000036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0000000000000000000000000000000000000000000000000ffffffffffffffc0000000000000000000000000000000000000000000000000ffffffffffffffa03134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f0000000100000000000000000000000000000000000000000000000000000000dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724323420626974730000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2032322062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2033000000000000000000000000000000000000000000000000ffffffffffffff40a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff805361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656400000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe06f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000000000000000000000000000000000000001000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76766572666c6f77696e6720766f746573000000000000000000000000000000004552433230566f7465733a20746f74616c20737570706c79207269736b73206f45524332303a206d696e7420746f20746865207a65726f206164647265737300636500000000000000000000000000000000000000000000000000000000000045524332303a206275726e20616d6f756e7420657863656564732062616c616e45524332303a206275726e2066726f6d20746865207a65726f2061646472657375696e74313230292e6d617800000000000000000000000000000000000000004469737472696275746f723a20746f74616c416d6f756e74203e20747970652802000002000000000000000000000000000000000000000000000000000000002536907b336817ff3a940af976e4e4006701a428e79e03c3b37bd90b4680c832", + "entries": [ + { + "constructorArgs": [], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xB63DC17fA834AA961aE88b6005e507Ddb60B2c53", + "txHash": "0x30f4767c6a6691def40b481bcc72caeb99e4bb0aea61b3d020e6c6d95f200bf8" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json new file mode 100644 index 00000000..5cc1a8e9 --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json @@ -0,0 +1,207 @@ +{ + "sourceName": "contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol", + "contractName": "TrancheVestingMerkleDistributorFactory", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "distributor", + "type": "address" + } + ], + "name": "DistributorDeployed", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche[]", + "name": "_tranches", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "deployDistributor", + "outputs": [ + { + "internalType": "contract TrancheVestingMerkleDistributor", + "name": "distributor", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "distributors", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getImplementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_total", + "type": "uint256" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint128", + "name": "time", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "vestedFraction", + "type": "uint128" + } + ], + "internalType": "struct Tranche[]", + "name": "_tranches", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint160", + "name": "_maxDelayTime", + "type": "uint160" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "predictDistributorAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x00010000000000020008000000000002000000000001035500000000030100190000006003300270000000e1033001970000000102200190000000c80000c13d0000008002000039000000400020043f000000040230008c000002380000413d000000000201043b000000e002200270000000e50420009c000000f80000213d000000e80420009c0000011e0000613d000000e90220009c000002380000c13d0000000002000416000001040430008c000002380000413d000000000202004b000002380000c13d0000000402100370000000000d02043b000000e302d0009c000002380000213d0000004402100370000000000502043b000000ea0250009c000002380000213d0000002302500039000000000232004b000002380000813d0000000406500039000000000261034f000000000202043b000000f60720009c000001180000813d0000001f07200039000000200c00008a0000000007c7016f0000003f077000390000000007c7016f000000eb0870009c000001180000213d0000008007700039000000400070043f000000800020043f00000000052500190000002405500039000000000535004b000002380000213d0000002005600039000000000551034f0000001f0620018f0000000507200272000000450000613d00000000080000190000000509800210000000000a95034f000000000a0a043b000000a0099000390000000000a904350000000108800039000000000978004b0000003d0000413d000000000806004b000000540000613d0000000507700210000000000575034f0000000306600210000000a007700039000000000807043300000000086801cf000000000868022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000585019f0000000000570435000000a00220003900000000000204350000006402100370000000000202043b000000ea0520009c000002380000213d0000002305200039000000000535004b000002380000813d0000000405200039000000000551034f000000000605043b000000ea0560009c000001180000213d00000005056002100000003f05500039000000ec05500197000000400400043d0000000005540019000000000745004b00000000070000190000000107004039000000ea0850009c000001180000213d0000000107700190000001180000c13d000000400050043f0000000000640435000000240220003900000006056002100000000005250019000000000735004b000002380000213d000000000606004b000001c60000c13d000000a402100370000000000602043b000000e30260009c000002380000213d000000c402100370000000000702043b000000e30270009c000002380000213d00020000000c001d0000002402100370000000000202043b0000008403100370000000000503043b000000e401100370000000000801043b000000800300003900000000010d0019000300000004001d037d02db0000040f000000f2020000410000000000200439000000000200041200000004002004430000002400000443000400000001001d000000e1030000410000000001000414000000e10210009c0000000001038019000000c001100210000000f7011001c70000800502000039037d03780000040f00000001022001900000023a0000613d000000000101043b0000008802100270000000f802200197000000f9022001c700000000002004350000007801100210000000fa011001c7000000200010043f000000fb010000410000000002000414000000090010043f00000004010000290000000d0010043f00000060010000390000004d0010043f0000004d0100008a0000006d0010043f000000e10120009c000000e102008041000000c001200210000000fc011001c70000800602000039037d03730000040f0000000102200190000000b60000613d000000000101043b000400e30010019c0000020e0000c13d000000400100043d00000044021000390000010403000041000000000032043500000024021000390000001703000039000000000032043500000105020000410000000000210435000000040210003900000020030000390000000000320435000000e102000041000000e10310009c0000000001028019000000400110021000000106011001c70000037f000104300000000002000416000000000202004b000002380000c13d0000001f02300039000000e202200197000000a002200039000000400020043f0000001f0230018f0000000504300272000000db0000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000d30000413d000000000502004b000000ea0000613d0000000504400210000000000141034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000200130008c000002380000413d000000a00100043d000000e30210009c000002380000213d000000800010043f000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000e4010000410000037e0001042e000000e60420009c000001370000613d000000e70220009c000002380000c13d0000000002000416000001040430008c000002380000413d000000000202004b000002380000c13d0000000402100370000000000902043b000000e30290009c000002380000213d0000004402100370000000000402043b000000ea0240009c000002380000213d0000002302400039000000000232004b000002380000813d0000000405400039000000000251034f000000000202043b000000ea0620009c000001180000213d0000001f06200039000000200700008a000000000676016f0000003f06600039000000000676016f000000eb0760009c000001480000a13d000001070100004100000000001004350000004101000039000000040010043f00000108010000410000037f000104300000000002000416000000240330008c000002380000413d000000000202004b000002380000c13d0000000401100370000000000101043b000000000200041a000000000221004b000002380000813d037d02ce0000040f0000000302200210000000000101041a000000000121022f000000e301100197000000ff0220008c0000000001002019000000400200043d0000000000120435000000e101000041000000e10320009c00000000020180190000004001200210000000f4011001c70000037e0001042e0000000001000416000000000101004b000002380000c13d0000000001000412000800000001001d000700000000001d000080050100003900000044030000390000000004000415000000080440008a0000000504400210000000f202000041037d03590000040f000000e301100197000000800010043f000000f5010000410000037e0001042e0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000434004b000002380000213d0000002004500039000000000441034f0000001f0520018f00000005062002720000015d0000613d00000000070000190000000508700210000000000a84034f000000000a0a043b000000a0088000390000000000a804350000000107700039000000000867004b000001550000413d000000000705004b0000016c0000613d0000000506600210000000000464034f0000000305500210000000a006600039000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f0000000000460435000000a00220003900000000000204350000006402100370000000000202043b000000ea0420009c000002380000213d0000002304200039000000000434004b000002380000813d0000000404200039000000000441034f000000000604043b000000ea0460009c000001180000213d00000005046002100000003f04400039000000ec05400197000000400400043d0000000005540019000000000745004b00000000070000190000000107004039000000ea0850009c000001180000213d0000000107700190000001180000c13d000000400050043f0000000000640435000000240220003900000006056002100000000005250019000000000735004b000002380000213d000000000606004b000001ea0000c13d000000a402100370000000000602043b000000f00260009c000002380000813d000000c402100370000000000702043b000000e30270009c000002380000213d0000002402100370000000000202043b0000008403100370000000000503043b000000e401100370000000000801043b00000080030000390000000001090019037d02db0000040f000000400400043d000400000004001d0000003802400039000000000300041000000000003204350000002402400039000000f10300004100000000003204350000000002000412000600000002001d000500000000001d000300000001001d000080050100003900000044030000390000000004000415000000060440008a0000000504400210000000f202000041037d03590000040f000000040300002900000014023000390000000000120435000000580130003900000003020000290000000000210435000000f30100004100000000001304350000000c013000390000003702000039037d03430000040f00000004030000290000007802300039000000000012043500000043013000390000005502000039037d03430000040f000000e3011001970000012f0000013d000000ed0600004100000000070400190000000008230049000000400980008c00000000090000190000000009064019000000ed08800197000000000a08004b000000000a000019000000000a062019000000ed0880009c000000000a09c01900000000080a004b000002380000c13d000000400800043d000000ee0980009c000001180000213d0000004009800039000000400090043f000000000921034f000000000909043b000000ef0a90009c000002380000213d0000000009980436000000200a200039000000000aa1034f000000000a0a043b000000ef0ba0009c000002380000213d00000020077000390000000000a9043500000000008704350000004002200039000000000852004b000001c80000413d000000770000013d000000ed0600004100000000070400190000000008230049000000400a80008c000000000a000019000000000a064019000000ed08800197000000000b08004b000000000b000019000000000b062019000000ed0880009c000000000b0ac01900000000080b004b000002380000c13d000000400800043d000000ee0a80009c000001180000213d000000400a8000390000004000a0043f000000000a21034f000000000a0a043b000000ef0ba0009c000002380000213d000000000aa80436000000200b200039000000000bb1034f000000000b0b043b000000ef0cb0009c000002380000213d00000020077000390000000000ba043500000000008704350000004002200039000000000852004b000001ec0000413d0000018f0000013d000000000100041a000000ea0210009c000001180000213d0000000102100039000000000020041b0000000000000435000000fd01100041000000000201041a000000fe022001970000000405000029000000000252019f000000000021041b000000e103000041000000400100043d000100000001001d0000000001000414000000e10210009c0000000001038019000000c001100210000000ff011001c70000800d0200003900000002030000390000010004000041037d03730000040f0000000101200190000002380000613d00000101010000410000000000100439000000040100002900000004001004430000000001000414000000e10210009c000000e101008041000000c00110021000000102011001c70000800202000039037d03780000040f00000001022001900000023a0000613d000000000101043b000000000101004b0000023b0000c13d00000000010000190000037f00010430000000000001042f00000103010000410000000105000029000000000015043500000000010003670000000402100370000000000202043b000000e302200197000000040350003900000000002304350000002402100370000000000202043b0000004403500039000000e004000039000000000043043500000024035000390000000000230435000000e402500039000000800300043d00000000003204350000010402500039000000000403004b000002590000613d00000000040000190000000005240019000000a006400039000000000606043300000000006504350000002004400039000000000534004b000002520000413d000000000423001900000000000404350000001f03300039000000020330017f00000001040000290000006404400039000001000530003900000000005404350000000002230019000000030300002900000000030304330000000002320436000000000403004b000002750000613d00000000040000190000000307000029000000200770003900000000050704330000000065050434000000ef0550019700000000055204360000000006060433000000ef06600197000000000065043500000040022000390000000104400039000000000534004b000002690000413d0000008403100370000000000303043b000000010500002900000084045000390000000000340435000000a403100370000000000303043b000000e303300197000000a4045000390000000000340435000000c403500039000000c401100370000000000101043b000000e301100197000000000013043500000000010004140000000403000029000000040330008c0000029b0000613d00000001050000290000000002520049000000e103000041000000e10450009c000000000403001900000000040540190000004004400210000000e10520009c00000000020380190000006002200210000000000242019f000000e10410009c0000000001038019000000c001100210000000000121019f0000000402000029037d03730000040f0000000102200190000002a80000613d0000000101000029000000ea0110009c000001180000213d0000000103000029000000400030043f00000004010000290000000000130435000000e101000041000000e10230009c00000000030180190000004001300210000000f4011001c70000037e0001042e000000400200043d000000000301001900000060033002700000001f0430018f000000e1033001970000000505300272000002b80000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002b00000413d000000000604004b000002c70000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000e101000041000000e10420009c000000000201801900000040012002100000006002300210000000000121019f0000037f00010430000000000200041a000000000212004b000002d50000a13d000000fd0110004100000000000004350000000002000019000000000001042d000001070100004100000000001004350000003201000039000000040010043f00000108010000410000037f00010430000000400900043d000000600a900039000001000b0000390000000000ba0435000000400a90003900000000002a0435000000e3021001970000002001900039000000000021043500000000a2030434000001200390003900000000002304350000014003900039000000000b02004b000002f20000613d000000000b000019000000000c3b0019000000000dba0019000000000d0d04330000000000dc0435000000200bb00039000000000c2b004b000002eb0000413d000000000a23001900000000000a04350000001f0a200039000000200200008a000000000a2a016f0000000003a30019000000000a930049000000200aa0008a000000800b9000390000000000ab0435000000000a0404330000000003a30436000000000b0a004b0000030d0000613d000000000b0000190000002004400039000000000c04043300000000dc0c0434000000ef0cc00197000000000cc30436000000000d0d0433000000ef0dd001970000000000dc04350000004003300039000000010bb00039000000000cab004b000003010000413d00000100049000390000000000840435000000e304700197000000e0079000390000000000470435000000e304600197000000c0069000390000000000460435000000a00490003900000000005404350000000003930049000000200430008a00000000004904350000001f03300039000000000323016f0000000002930019000000000332004b00000000030000190000000103004039000000ea0420009c0000033a0000213d00000001033001900000033a0000c13d000000400020043f000000e102000041000000e10310009c000000000102801900000040011002100000000003090433000000e10430009c00000000030280190000006003300210000000000113019f0000000003000414000000e10430009c0000000003028019000000c002300210000000000112019f000000ff011001c70000801002000039037d03780000040f0000000102200190000003400000613d000000000101043b000000000001042d000001070100004100000000001004350000004101000039000000040010043f00000108010000410000037f0001043000000000010000190000037f00010430000000000001042f000000e103000041000000e10410009c00000000010380190000004001100210000000e10420009c00000000020380190000006002200210000000000112019f0000000002000414000000e10420009c0000000002038019000000c002200210000000000112019f000000ff011001c70000801002000039037d03780000040f0000000102200190000003570000613d000000000101043b000000000001042d00000000010000190000037f0001043000000000050100190000000000200439000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000231004b0000035c0000413d000000e1010000410000000002000414000000e10420009c0000000002018019000000e10430009c00000000030180190000006001300210000000c002200210000000000112019f00000109011001c70000000002050019037d03780000040f0000000102200190000003720000613d000000000101043b000000000001042d000000000001042f00000376002104210000000102000039000000000001042d0000000002000019000000000001042d0000037b002104230000000102000039000000000001042d0000000002000019000000000001042d0000037d000004320000037e0001042e0000037f00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000aaf10f4100000000000000000000000000000000000000000000000000000000aaf10f4200000000000000000000000000000000000000000000000000000000d0dd5a7a0000000000000000000000000000000000000000000000000000000050b492ba00000000000000000000000000000000000000000000000000000000552ccdd8000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf3ff310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0000000000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000001000000000000000002000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff0000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf33cda33511d41a8a5431b1770c5bc0ddd62e1cd30555d16659b89c0d60f4f9f570200000000000000000000000000000000000037000000090000000000000000290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000448708bcd9fda3435ba79d40bb017e884dcbed0b1e972743c8fd32f6c5ff47bb1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000003480e6ab00000000000000000000000000000000000000000000000000000000455243313136373a2063726561746532206661696c656400000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000020000020000000000000000000000000000000000000000000000000000000009d5e4eb8d9f1d5f4119183b11d17d8d23cfcb13f58991ee0fcf88ebc97385e2", + "entries": [ + { + "constructorArgs": [ + "0xB63DC17fA834AA961aE88b6005e507Ddb60B2c53" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xc6B19D47a336d3382f57EdD768233076a27C28c2", + "txHash": "0x16ce0f3249f4f143e810c11d1ee0b86b3934c059a81fb744cc025075baa5a79c" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json new file mode 100644 index 00000000..ce4850dc --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json @@ -0,0 +1,987 @@ +{ + "sourceName": "contracts/ts/sale/v2.1/FlatPriceSale.sol", + "contractName": "FlatPriceSale_v_2_1", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_feeBips", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "_feeRecipient", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "baseCurrencyValue", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenValue", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenFee", + "type": "uint256" + } + ], + "name": "Buy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address payable", + "name": "feeRecipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "feeBips", + "type": "uint256" + } + ], + "name": "ImplementationConstructor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "indexed": false, + "internalType": "struct Config", + "name": "config", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "string", + "name": "baseCurrency", + "type": "string" + }, + { + "indexed": false, + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "nativeOracle", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "nativePaymentsEnabled", + "type": "bool" + } + ], + "name": "Initialize", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "distributor", + "type": "address" + } + ], + "name": "RegisterDistributor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract IERC20Upgradeable", + "name": "token", + "type": "address" + }, + { + "components": [ + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + } + ], + "indexed": false, + "internalType": "struct PaymentTokenInfo", + "name": "paymentTokenInfo", + "type": "tuple" + } + ], + "name": "SetPaymentTokenInfo", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepNative", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "SweepToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "indexed": false, + "internalType": "struct Config", + "name": "config", + "type": "tuple" + } + ], + "name": "Update", + "type": "event" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseCurrency", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "buyWithNative", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Upgradeable", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "buyWithToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "buyerTotal", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "config", + "outputs": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + } + ], + "name": "generatePseudorandomValue", + "outputs": [ + { + "internalType": "uint160", + "name": "", + "type": "uint160" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "buyer", + "type": "address" + } + ], + "name": "getFairQueueTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Upgradeable", + "name": "token", + "type": "address" + } + ], + "name": "getPaymentToken", + "outputs": [ + { + "components": [ + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + } + ], + "internalType": "struct PaymentTokenInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "internalType": "struct Config", + "name": "_config", + "type": "tuple" + }, + { + "internalType": "string", + "name": "_baseCurrency", + "type": "string" + }, + { + "internalType": "bool", + "name": "_nativePaymentsEnabled", + "type": "bool" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "_nativeTokenPriceOracle", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable[]", + "name": "tokens", + "type": "address[]" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck[]", + "name": "oracles", + "type": "address[]" + }, + { + "internalType": "uint8[]", + "name": "decimals", + "type": "uint8[]" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "isOpen", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOver", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "root", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "isValidMerkleProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "metrics", + "outputs": [ + { + "internalType": "uint256", + "name": "purchaseCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "buyerCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseTotal", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nativeTokenPriceOracle", + "outputs": [ + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Upgradeable", + "name": "", + "type": "address" + } + ], + "name": "paymentTokens", + "outputs": [ + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dest", + "type": "address" + } + ], + "name": "payments", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_distributor", + "type": "address" + } + ], + "name": "registerDistributor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sweepNative", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Upgradeable", + "name": "token", + "type": "address" + } + ], + "name": "sweepToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenQuantity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenDecimals", + "type": "uint256" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "oracle", + "type": "address" + } + ], + "name": "tokensToBaseCurrency", + "outputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "total", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "internalType": "struct Config", + "name": "_config", + "type": "tuple" + } + ], + "name": "update", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "payee", + "type": "address" + } + ], + "name": "withdrawPayments", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x0004000000000002001d00000000000200000000030100190000006004300270000005440340019700030000003103550002000000010355000005440040019d00000001022001900000005c0000c13d0000008007000039000000400070043f000000040230008c000000850000413d000000000201043b000000e002200270000005510420009c000000870000213d000005650420009c000000ac0000213d0000056f0420009c000001d30000a13d000005700420009c000002240000213d000005730420009c000002980000613d000005740220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b001b05460010019b000005460110009c000000850000213d0000009701000039000000000101041a000005af0200004100000000002004390000054601100197001a00000001001d000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000101004b000000850000613d000000400500043d000005d501000041000000000015043500000004015000390000001b02000029000000000021043500000000010004140000001a02000029000000040320008c000000570000613d0000054404000041000005440310009c0000000001048019000005440350009c00000000040540190000004003400210000000c001100210000000000131019f00000595011001c7001b00000005001d150a15000000040f0000001b0500002900000000030100190000006003300270000105440030019d000005440330019700030000000103550000000102200190000007750000613d0000057d0150009c000007a60000213d000000400050043f00000000010000190000150b0001042e0000000002000416000000000202004b000000850000c13d0000001f023000390000054502200197000000c002200039000000400020043f0000001f0230018f00000005043002720000006f0000613d00000000050000190000000506500210000000000761034f000000000707043b000000c00660003900000000007604350000000105500039000000000645004b000000670000413d000000000502004b0000007e0000613d0000000504400210000000000141034f0000000302200210000000c004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000400130008c000000850000413d000000c00300043d000000e00400043d0000054605400197000005460140009c000000e30000a13d00000000010000190000150c00010430000005520420009c0000011a0000213d0000055c0420009c000001de0000a13d0000055d0420009c0000023b0000213d000005600420009c000002b30000613d000005610120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000059c0100004100000000001004390000000001000410000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800a02000039150a15050000040f000000010220019000000fe10000613d000000000901043b000000ce01000039000000000201041a00000000010004140000054604200197000000040240008c000005eb0000c13d00000001020000390000000101000031000006d00000013d000005660420009c000001f20000a13d000005670420009c000002560000213d0000056a0420009c000002be0000613d0000056b0120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d603000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000039d0000c13d000000d505000039000000000c05041a000000d405000039000000000b05041a000000d305000039000000000a05041a000000d205000039000000000905041a000000d105000039000000000805041a000000d005000039000000000705041a000000cf05000039000000000605041a000000ce05000039000000000d05041a000000800010043f000000000404004b001b00000006001d001a00000007001d001900000008001d001800000009001d00170000000a001d00160000000b001d00150000000c001d00140000000d001d000005f40000613d0000000000300435000000000201004b000006950000c13d000000a001000039000006a00000013d000000000100041a0000ff0002100190000001be0000c13d000000ff0210018f000000ff0220008c000001040000613d000000ff011001bf000000000010041b000000ff01000039000000400200043d00000000001204350000054401000041001a00000003001d0000000003000414001900000004001d000005440430009c0000000003018019000005440420009c00000000020180190000004001200210000000c002300210000000000112019f0000054b011001c70000800d0200003900000001030000390000054c04000041001b00000005001d150a15000000040f00000019040000290000001a030000290000001b050000290000000101200190000000850000613d000000400100043d000000000203004b000002780000613d000000000205004b000002780000c13d00000044021000390000054f030000410000000000320435000000240210003900000011030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000005530420009c0000020e0000a13d000005540420009c0000025f0000213d000005570420009c000002c90000613d000005580220009c000000850000c13d0000000002000416000000840430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d000005460220009c000000850000213d0000002402100370000000000202043b001a00000002001d0000004402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d001800040020003d0000001804100360000000000404043b001900000004001d0000057d0440009c000000850000213d0000002404200039001700000004001d0000001902400029000000000232004b000000850000213d0000006402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000141034f000000000101043b001600000001001d0000057d0110009c000000850000213d000000240220003900000016010000290000000501100210001400000001001d001300000002001d0000000001210019000000000131004b000000850000213d001500000007001d0000057e01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000000002000411001200000002001d000000000112004b0000081d0000c13d000000cf01000039000000000101041a000000000201004b000008a70000c13d000000190100006b000008940000c13d000000d301000039000000000101041a001800000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000180210006c000009b80000a13d000000d402000039000000000202041a000000000221004b000009d80000813d000000d002000039000000000202041a000000d903000039000000000303041a000000000223004b000009e80000813d000000d502000039000000000302041a000000000203004b0000000002000019000001970000613d0000054602300198000005d20000613d000000db03000039000000000303041a000000120330014f0000054603300197000005464220012900000000322300d9000000180110006a000000000121004b00000a7d0000a13d0000001b010000290000000000100435000000cd01000039001800000001001d000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000400200043d000005840320009c000007a60000213d000000000101043b0000004003200039000000400030043f000000000101041a000000a003100270000000ff0330018f000000200420003900000000003404350000054601100198000000000012043500000b040000c13d000000400100043d000000440210003900000589030000410000000000320435000000240210003900000015030000390000010e0000013d000000400100043d000000640210003900000547030000410000000000320435000000440210003900000548030000410000000000320435000000240210003900000027030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c000000000102801900000040011002100000054a011001c70000150c00010430000005750420009c0000048b0000613d000005760420009c000003770000613d000005770120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d901000039000002370000013d000005620420009c0000053c0000613d000005630120009c0000038e0000613d000005640120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d901000039000000000101041a000000d802000039000000000202041a000000d703000039000000000303041a000000800030043f000000a00020043f000000c00010043f000005a1010000410000150b0001042e0000056c0420009c000005650000613d0000056d0420009c000003a30000613d0000056e0120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000006501000039000000000201041a00000546052001970000000003000411000000000335004b000005d80000c13d000005aa02200197000000000021041b00000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059e011001c70000800d020000390000000303000039000005ae040000410000000006000019000007260000013d000005590420009c0000056e0000613d0000055a0420009c000004750000613d0000055b0220009c000000850000c13d0000000002000416000000640330008c000000850000413d000000000202004b000000850000c13d0000004402100370000000000302043b000005460230009c000000850000213d0000000402100370000000000402043b0000002401100370000000000201043b0000000001040019150a11290000040f000005fd0000013d000005710420009c000002d20000613d000005720220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000000000100435000000da01000039000000200010043f00000040020000390000000001000019150a14ea0000040f000000000101041a000000800010043f0000058a010000410000150b0001042e0000055e0420009c000002f60000613d0000055f0220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000000000100435000000cd01000039000000200010043f00000040020000390000000001000019150a14ea0000040f000000000101041a0000054602100197000000800020043f000000a001100270000000ff0110018f000000a00010043f0000059b010000410000150b0001042e000005680420009c000003130000613d000005690120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000006501000039000002cd0000013d000005550420009c0000035a0000613d000005560120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000c001000039000000400010043f0000000301000039000000800010043f0000057801000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e002000039150a100b0000040f000000c00110008a0000054402000041000005440310009c0000000001028019000000600110021000000579011001c70000150b0001042e000000a00040043f000000800030043f000000000031043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f0000054b011001c70000800d020000390000000203000039001b00000003001d0000054d04000041150a15000000040f0000000101200190000000850000613d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a00010044300000100002004430000001b0100002900000120001004430000054e010000410000150b0001042e0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000006502000039000000000202041a00000546022001970000000003000411000000000232004b000005d80000c13d000000000201004b000007170000c13d0000054901000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f000005d901000041000000c40010043f000005d6010000410000150c000104300000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d150a11140000040f000005fd0000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d150a10340000040f000005fd0000013d0000000001000416000000000101004b000000850000c13d000000cc01000039000000000101041a0000054601100197000000800010043f0000058a010000410000150b0001042e0000000001000416000000000101004b000000850000c13d000000d301000039000000000101041a001b00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001b0210006b0000000002000019000002f40000813d000000d402000039000000000202041a000000000112004b0000000002000019000002f40000a13d000000d001000039000000000101041a000000d902000039000000000202041a000000000112004b00000000020000190000000102004039000000010120018f000005fd0000013d0000000001000416000000000101004b000000850000c13d000000d401000039000000000101041a001b00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001b0110006b000005fb0000a13d000000d001000039000000000101041a000000d902000039000000000202041a000000000112004b00000000010000190000000101008039000005fc0000013d0000000002000416000000240430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d0000057d0220009c000000850000213d0000001b0430006a000005a402000041000001240340008c00000000030000190000000003024019001a00000004001d000005a404400197000000000504004b000000000200a019000005a40440009c000000000203c019000000000202004b000000850000c13d000001a002000039000000400020043f000000ce09000039000000000309041a0000054603300197000000800030043f000000cf0a00003900000000030a041a000000a00030043f000000d00b00003900000000030b041a000000c00030043f000000d10c00003900000000030c041a000000e00030043f000000d20d00003900000000030d041a000001000030043f000000d30e00003900000000030e041a000001200030043f000000d40f00003900000000030f041a000001400030043f000000d507000039000000000307041a000001600030043f000000d608000039000000000408041a000000010540019000000001064002700000007f0360018f000000000306c0190000001f0630008c00000000060000190000000106002039000000000664013f00000001066001900000039d0000c13d000001a00030043f000000000505004b001900000007001d0000076e0000613d0000000000800435000000000403004b000007980000c13d0000002003000039000007ac0000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000006502000039000000000202041a00000546022001970000000003000411000000000232004b000005d80000c13d000000000201004b0000072b0000c13d0000054901000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000057a01000041000000c40010043f0000057b01000041000000e40010043f0000057c010000410000150c000104300000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b001b00000001001d000005460110009c000000850000213d000005da01000041000000800010043f0000000001000410000000840010043f00000000010004140000001b02000029000000040320008c0000060a0000c13d0000000103000031000000200130008c00000000040300190000002004008039000006350000013d0000000001000416000000000101004b000000850000c13d000000cb03000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0610008c00000000060000190000000106002039000000000662013f0000000106600190000005e10000613d000005940100004100000000001004350000002201000039000000040010043f00000595010000410000150c000104300000000002000416000001040430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d000005460220009c000000850000213d0000002402100370000000000202043b0000057d0420009c000000850000213d0000000002230049000005a404000041000001240520008c00000000050000190000000005044019000005a402200197000000000602004b000000000400a019000005a40220009c000000000405c019000000000204004b000000850000c13d0000004402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001a00000004001d0000057d0440009c000000850000213d0000002402200039001900000002001d0000001a02200029000000000232004b000000850000213d0000006402100370000000000402043b000000000204004b0000000002000019000000010200c039001800000004001d000000000224004b000000850000c13d0000008402100370000000000202043b001700000002001d000005460220009c000000850000213d000000a402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001600000004001d0000057d0440009c000000850000213d001400240020003d000000160200002900000005022002100000001402200029000000000232004b000000850000213d000000c402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001300000004001d0000057d0440009c000000850000213d001200240020003d000000130200002900000005022002100000001202200029000000000232004b000000850000213d000000e402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000141034f000000000101043b001100000001001d0000057d0110009c000000850000213d000f00240020003d000000110100002900000005011002100000000f01100029000000000131004b000000850000213d001500000007001d000000000100041a001000000001001d000dff000010019400000a890000c13d0000001001000029000000ff0110019000000000020000190000000102006039001c00000002001d00000000020004150000001c0220008a000e000500200218000000000101004b00000a8d0000c13d0000001001000029000005b20110019700000101011001bf000000000010041b000000400100043d000005b30210009c000007a60000213d0000012002100039000000400020043f000000ce02000039000a00000002001d000000000202041a00000546022001970000000002210436000000cf03000039000b00000003001d000000000303041a0000000000320435000000d002000039000900000002001d000000000202041a0000004003100039000c00000003001d0000000000230435000000d102000039000800000002001d000000000202041a00000060031000390000000000230435000000d202000039000700000002001d000000000202041a00000080031000390000000000230435000000d302000039000600000002001d000000000202041a000000a003100039000e00000003001d0000000000230435000000d402000039000500000002001d000000000302041a000000c0021000390000000000320435000000e003100039000000d504000039000400000004001d000000000404041a0000000000430435000000d603000039001000000003001d000000000603041a000000010760019000000001036002700000007f0430018f000000000403c0190000001f0340008c00000000030000190000000103002039000000000337004b0000039d0000c13d000000400300043d0000000005430436000000000707004b00000b8f0000613d00000010060000290000000000600435000000000604004b000000000600001900000b950000613d000005a50700004100000000060000190000000008560019000000000907041a000000000098043500000001077000390000002006600039000000000846004b0000046d0000413d00000b950000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000009702000039000000000202041a0000058c03000041000000800030043f000000840010043f00000000010004140000054602200197000000040320008c0000065f0000c13d0000000104000031000000200140008c00000020040080390000068a0000013d0000000002000416000000840430008c000000850000413d000000000202004b000000850000c13d0000002402100370000000000402043b000005460240009c000000850000213d0000004402100370000000000602043b0000057d0260009c000000850000213d0000002302600039000000000232004b000000850000813d0000000405600039000000000251034f000000000202043b0000057d0720009c000000850000213d00000000062600190000002406600039000000000636004b000000850000213d0000006406100370000000000606043b0000057d0760009c000000850000213d0000002307600039000000000737004b000000850000813d0000000407600039000000000771034f000000000707043b001b00000007001d0000057d0770009c000000850000213d00000024066000390000001b070000290000000507700210001700000006001d001a00000007001d001800000067001d000000180330006b000000850000213d0000000403100370000000000303043b001600000003001d0000006003400210000000a00030043f0000002003500039000000000131034f0000001f0320018f0000000504200272000004cc0000613d00000000050000190000000506500210000000000761034f000000000707043b000000b40660003900000000007604350000000105500039000000000645004b000004c40000413d000000000503004b000004db0000613d0000000504400210000000000141034f0000000303300210000000b404400039000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000b40120003900000000000104350000005301200039000000200300008a000000000331016f0000001401200039000000800010043f000005dd0230009c000007a60000813d0000008002300039000000400020043f00000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000006001100210000000c002300210000000000121019f000005de011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000000101043b0000001a020000290000003f02200039000005df02200197000000400300043d0000000002230019001a00000003001d000000000332004b000000000300001900000001030040390000057d0420009c000007a60000213d0000000103300190000007a60000c13d000000400020043f0000001b020000290000001a030000290000000002230436001900000002001d0000001803000029000000000230007c000000850000213d0000001b0200006b000005380000613d0000000202000367000000190300002900000017050000290000001806000029000000000452034f000000000404043b00000000034304360000002005500039000000000465004b000005100000413d0000001a020000290000000002020433000000000202004b000005380000613d001880100000003d0000000003000019001b00000003001d000000050230021000000019022000290000000002020433000000000321004b000005260000813d0000000000100435000000200020043f0000000001000414000005290000013d0000000000200435000000200010043f0000000001000414000005440210009c0000054401008041000000c00110021000000583011001c70000001802000029150a15050000040f0000000102200190000000850000613d000000000101043b0000001b0300002900000001033000390000001a020000290000000002020433000000000223004b0000051c0000413d000000160110006c00000000010000190000000101006039000005fd0000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d000000c002000039001b00000002001d000000400020043f000000800000043f000000a00000043f0000000000100435000000cd01000039000000200010043f00000040020000390000000001000019150a14ea0000040f001a00000001001d0000001b01000029150a0fed0000040f0000001a01000029000000000101041a0000054602100197000000c00020043f000000a001100270000000ff0110018f000000e00010043f000000400100043d0000000002210436000000e00300043d000000ff0330018f00000000003204350000054402000041000005440310009c00000000010280190000004001100210000005a3011001c70000150b0001042e0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b150a10ea0000040f000005fd0000013d000000440230008c000000850000413d0000000402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d001a00040020003d0000001a04100360000000000404043b001b00000004001d0000057d0440009c000000850000213d0000002404200039001900000004001d0000001b02400029000000000232004b000000850000213d0000002402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000141034f000000000101043b001800000001001d0000057d0110009c000000850000213d000000240220003900000018010000290000000501100210001700000001001d001600000002001d0000000001210019000000000131004b000000850000213d001500000007001d0000057e01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000000002000411001400000002001d000000000112004b0000081d0000c13d000000cf01000039000000000101041a000000000201004b0000083c0000c13d0000001b0100006b000008940000c13d000000d301000039000000000101041a001a00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001a0210006c000009b80000a13d000000d402000039000000000202041a000000000221004b000009d80000813d000000d002000039000000000202041a000000d903000039000000000303041a000000000223004b000009e80000813d000000d502000039000000000302041a000000000203004b000000000200001900000a720000613d000005460230019800000a6c0000c13d000005940100004100000000001004350000001201000039000000040010043f00000595010000410000150c000104300000054901000041000000800010043f0000002001000039000000840010043f000000a40010043f000005a901000041000000c40010043f000005d6010000410000150c00010430000000800010043f000000000505004b000006050000c13d000001000100008a000000000112016f000000a00010043f000000000104004b000000c001000039000000a001006039000007390000013d0000054402000041000005440310009c0000000001028019000000c001100210000000000209004b001b00000009001d000006c60000c13d0000000002040019000006ca0000013d000001000300008a000000000232016f000000a00020043f000000000101004b000000c001000039000000a001006039000006a00000013d0000000101000039000000010110018f000000400200043d00000000001204350000054401000041000005440320009c000000000201801900000040012002100000058b011001c70000150b0001042e0000000000300435000000020220008c0000072e0000813d000000a001000039000007390000013d0000054404000041000005440310009c0000000001048019000000c0011002100000058d011001c7150a15050000040f000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000006220000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000061a0000413d000000000705004b000006310000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000074e0000613d0000001f01400039000000600110018f00000080021001bf000000400020043f000000200330008c000000850000413d000000ce03000039000000000303041a000000a004100039000000800600043d001a00000006001d000005db0500004100000000005404350000054603300197000000a4041000390000000000340435000000c40310003900000000006304350000004403000039000000000032043500000100011001bf000000400010043f0000001b01000029150a13a60000040f000000400100043d0000001a02000029000000000021043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f0000054b011001c70000800d020000390000000203000039000005dc040000410000001b05000029000007260000013d0000054403000041000005440410009c0000000001038019000000c0011002100000058d011001c7150a15050000040f000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000006770000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000066f0000413d000000000705004b000006860000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000075e0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200240008c000000850000413d000000800200043d000000000021043500000040011002100000058b011001c70000150b0001042e000005a50200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b000006970000413d000000c001300039000000800210008a0000008001000039001300000001001d150a0ff80000040f000000400300043d001200000003001d000001000130003900000120020000390000000000210435000000e00130003900000015020000290000000000210435000000c00130003900000016020000290000000000210435000000a0013000390000001702000029000000000021043500000080013000390000001802000029000000000021043500000060013000390000001902000029000000000021043500000040013000390000001a02000029000000000021043500000020013000390000001b02000029000000000021043500000014010000290000054601100197000000000013043500000120023000390000001301000029150a100b0000040f0000001204000029000007440000013d0000059e011001c7000080090200003900000000030900190000000005000019150a15000000040f0000001b0900002900030000000103550000006001100270000105440010019d0000054401100197000000000301004b000006e40000c13d000000400100043d0000000102200190000007110000613d000000000091043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f0000054b011001c70000800d020000390000000103000039000005a004000041000007260000013d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b000000000500001900000001050040390000057d0630009c000007a60000213d0000000105500190000007a60000c13d000000400030043f0000001f0310018f000000000414043600000003050003670000000501100272000007010000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000006f90000413d000000000603004b000006d20000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000006d20000013d00000044021000390000059f030000410000000000320435000000240210003900000010030000390000010e0000013d000000ca02000039000000000302041a000005aa03300197000000000313019f000000000032041b000000800010043f00000544010000410000000002000414000005440320009c0000000002018019000000c001200210000005d7011001c70000800d020000390000000103000039000005d804000041150a15000000040f0000000101200190000000850000613d00000000010000190000150b0001042e150a101e0000040f00000000010000190000150b0001042e000005a20200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b000007300000413d000000c001300039000000800210008a0000008001000039001b00000001001d150a0ff80000040f0000002001000039000000400200043d001a00000002001d00000000021204360000001b01000029150a100b0000040f0000001a0400002900000000014100490000054402000041000005440310009c0000000001028019000005440340009c000000000402801900000040024002100000006001100210000000000121019f0000150b0001042e000000400200043d0000001f0430018f00000005053002720000075b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007530000413d000000000604004b000007840000c13d000007910000013d000000400200043d0000001f0430018f00000005053002720000076b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007630000413d000000000604004b000007910000613d000007840000013d000001000500008a000000000454016f000001c00040043f000000000303004b00000020040000390000000004006019000007a10000013d000000400200043d0000001f0430018f0000000505300272000007820000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000077a0000413d000000000604004b000007910000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000121019f0000150c00010430000005a5050000410000000004000019000000000605041a000001c007400039000000000067043500000001055000390000002004400039000000000634004b0000079a0000413d0000003f03400039000000200400008a000000000343016f000005a60430009c000007ac0000a13d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c00010430000001a003300039000000400030043f000001800020043f000000db05000039000000000205041a0000054602200198000007c00000c13d0000001b02000029000000a403200039000000000231034f000000000202043b000005a70420009c000007f80000a13d000000400100043d0000004402100039000005d403000041000000000032043500000024021000390000001f030000390000010e0000013d001000000005001d00120000000f001d00130000000e001d00140000000d001d00150000000c001d00160000000b001d00180000000a001d001700000009001d001100000008001d000001400100043d000f00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000201043b0000000f0120006c00000c730000813d0000000201000367000001200300043d000000000232004b000008320000a13d0000001b020000290000004402200039000000000221034f000000000202043b000000c00300043d000000000223004b00000011080000290000001709000029000000180a000029000000160b000029000000150c000029000000140d000029000000130e000029000000120f0000290000001005000029000007b30000613d000000400100043d0000006402100039000005b50300004100000000003204350000004402100039000005b603000041000000000032043500000024021000390000002403000039000001c70000013d001000000005001d00120000000f001d00130000000e001d00140000000d001d00150000000c001d00160000000b001d00180000000a001d001700000009001d001100000008001d0000002004300039000000000341034f000000000303043b000005a70530009c0000080d0000a13d000000400100043d0000004402100039000005d303000041000000000032043500000024021000390000001d030000390000010e0000013d0000002005400039000000000451034f000000000404043b000005a80640009c000008240000a13d000000400100043d0000004402100039000005d2030000410000000000320435000005490200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000001130000013d000000400100043d00000044021000390000058e030000410000000000320435000000240210003900000014030000390000010e0000013d000000e00650008a000000000561034f000000000505043b000005460750009c000000850000213d000000000705004b0000089e0000c13d000000400100043d0000004402100039000005d1030000410000000000320435000000240210003900000017030000390000010e0000013d00000011080000290000001709000029000000180a000029000000160b000029000000150c000029000000140d000029000000130e000029000000120f0000290000001005000029000007b30000013d000000400500043d00000044025000390000001503000029000000000032043500000014020000290000054602200197000000240350003900000000002304350000058002000041000000000025043500000084025000390000001b060000290000000000620435000000040250003900000000001204350000001f0460018f001300000005001d000000a4035000390000001a0100002900000020051000390000000201000367000000000551034f00000005066002720000085d0000613d000000000700001900000005087002100000000009830019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000008550000413d000000000704004b0000086c0000613d0000000506600210000000000565034f00000000066300190000000304400210000000000706043300000000074701cf000000000747022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000474019f00000000004604350000001b04000029000000000343001900000000000304350000001f03400039000000200400008a000000000343016f00000013040000290000006404400039000000a00530003900000000005404350000000003320019000000a0023000390000001804000029000000000042043500000017040000290000001f0240018f0000000504400272000008890000613d0000001601100360000000c005300039000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000746004b000008810000413d000000000102004b0000088b0000613d00000000010004140000000002000410000000040420008c000008ff0000c13d0000000103000031000000200130008c00000000040300190000002004008039000009370000013d000000400100043d00000064021000390000058f03000041000000000032043500000044021000390000059003000041000000000032043500000024021000390000002103000039000001c70000013d0000004007600039000000000671034f000000000606043b000000000806004b0000094e0000c13d000000400100043d0000004402100039000005d003000041000007130000013d000000400500043d000000440250003900000015030000290000000000320435000000120200002900000546022001970000002403500039000000000023043500000580020000410000000000250435000000840250003900000019060000290000000000620435000000040250003900000000001204350000001f0460018f001100000005001d000000a403500039000000180100002900000020051000390000000201000367000000000551034f0000000506600272000008c80000613d000000000700001900000005087002100000000009830019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000008c00000413d000000000704004b000008d70000613d0000000506600210000000000565034f00000000066300190000000304400210000000000706043300000000074701cf000000000747022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000474019f00000000004604350000001904000029000000000343001900000000000304350000001f03400039000000200400008a000000000343016f00000011040000290000006404400039000000a00530003900000000005404350000000003320019000000a0023000390000001604000029000000000042043500000014040000290000001f0240018f0000000504400272000008f40000613d0000001301100360000000c005300039000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000746004b000008ec0000413d000000000102004b000008f60000613d00000000010004140000000002000410000000040420008c000009570000c13d0000000103000031000000200130008c000000000403001900000020040080390000098f0000013d0000001306000029000000170460006900000000033400190000054404000041000005440560009c000000000504001900000000050640190000004005500210000000c003300039000005440630009c00000000030480190000006003300210000000000353019f000005440510009c0000000001048019000000c001100210000000000131019f150a15050000040f000000130a000029000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000009240000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000091c0000413d000000000705004b000009330000613d0000000506600210000000000761034f00000013066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000009a80000613d0000001f01400039000000600210018f0000001301200029000000000221004b000000000200001900000001020040390000057d0410009c000007a60000213d0000000102200190000007a60000c13d000000400010043f000000200230008c000000850000413d00000013020000290000000002020433000000000302004b0000000003000019000000010300c039000000000332004b000000850000c13d000000000202004b000005af0000c13d000009a50000013d0000002008700039000000000781034f000000000707043b000000000907004b000009bf0000c13d000000400100043d0000004402100039000005cf03000041000007130000013d0000001106000029000000140460006900000000033400190000054404000041000005440560009c000000000504001900000000050640190000004005500210000000c003300039000005440630009c00000000030480190000006003300210000000000353019f000005440510009c0000000001048019000000c001100210000000000131019f150a15050000040f000000110a000029000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000097c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000009740000413d000000000705004b0000098b0000613d0000000506600210000000000761034f00000011066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000009c80000613d0000001f01400039000000600210018f0000001101200029000000000221004b000000000200001900000001020040390000057d0410009c000007a60000213d0000000102200190000007a60000c13d000000400010043f000000200230008c000000850000413d00000011020000290000000002020433000000000302004b0000000003000019000000010300c039000000000332004b000000850000c13d000000000202004b0000016e0000c13d00000044021000390000058103000041000009c40000013d000000400200043d0000001f0430018f0000000505300272000009b50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000009ad0000413d000000000604004b000007910000613d000007840000013d000000400100043d000000440210003900000591030000410000000000320435000000240210003900000018030000390000010e0000013d000000000967004b000009df0000a13d000000400100043d0000004402100039000005ce030000410000000000320435000000240210003900000019030000390000010e0000013d000000400200043d0000001f0430018f0000000505300272000009d50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000009cd0000413d000000000604004b000007910000613d000007840000013d000000400100043d00000044021000390000059203000041000000000032043500000024021000390000000e030000390000010e0000013d0000002008800039000000000981034f000000000909043b000000000a79004b000009ef0000a13d000000400100043d0000004402100039000005cd03000041000008090000013d000000400100043d000000440210003900000593030000410000000000320435000000240210003900000016030000390000010e0000013d000000000a240019000000000a3a004b00000a5e0000813d000000650a000039000000000a0a041a000005460aa00197000000000b000411000000000aba004b00000a680000c13d000000170b000029000000000a0b041a000005aa0aa0019700000000055a019f00000000005b041b000000600580008a000000000551034f000000000505043b000000180a00002900000000005a041b0000001605000029000000000065041b0000001505000029000000000075041b0000001405000029000000000095041b0000001305000029000000000025041b0000001202000029000000000032041b0000001902000029000000000042041b0000008002800039000000000221034f0000001a03000029000000230330008a000000000202043b000005a404300197000005a405000041000000000332004b00000000030000190000000003054019000005a406200197000000000746004b000000000500a019000000000446013f000005a40440009c000000000503c019000000000305004b000000850000613d0000001b032000290000000402300039000000000221034f000000000202043b0000057d0420009c000000850000213d00000000052000790000002404300039000005a406000041000000000754004b00000000070000190000000007062019000005a405500197000005a408400197000000000958004b0000000006008019000000000558013f000005a40550009c000000000607c019000000000506004b000000850000c13d0000001105000029000000000605041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f00000001066001900000039d0000c13d000000200650008c00000a540000413d0000001f062000390000000506600270000005a507600041000005a506000041000000200820008c0000000006078019000000110700002900000000007004350000001f055000390000000505500270000005a505500041000000000756004b00000a540000813d000000000006041b0000000106600039000000000756004b00000a500000413d0000001f0520008c00000b820000a13d00000011050000290000000000500435000000200500008a000000000652017000000bc30000c13d0000002404000039000005a50500004100000bcf0000013d000000400100043d0000006402100039000005b90300004100000000003204350000004402100039000005ba03000041000000000032043500000024021000390000002b03000039000001c70000013d000000400100043d0000004402100039000005a903000041000008150000013d000000db03000039000000000303041a000000140330014f0000054603300197000005464220012900000000322300d90000001a0110006a000000000121004b00000a7d0000a13d000000cc01000039000000000101041a000005970210019800000a810000c13d000000400100043d00000044021000390000059a03000041000009bb0000013d000000400100043d000000440210003900000596030000410000010b0000013d0000000102000039000000000302041a000000020330008c00000aad0000c13d000000400100043d00000044021000390000059903000041000007bc0000013d00000000010004150000001d0110008a000e000500100218001d00000000001d000005af0100004100000000001004390000000001000410000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000101004b00000af70000c13d0000001001000029000000ff0110018f000000010110008c000000000100001900000001010060390000000e020000290000000502200270000000000201001f00000afa0000c13d0000000d0100006b000004240000613d000001000100008a000000100110017f00000001011001bf000004270000013d0000000203000039000000000032041b0000054601100197150a10340000040f000000000400041600000000321400a9001a00000004001d000000000304004b00000ab90000613d0000001a432000fa000000000113004b00000bf10000c13d000005982120012a001800000001001d00000019020000290000001b03000029150a120d0000040f000005850100004100000000001004390000000001000412001b00000001001d0000000400100443000000240000044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b000000000200001900000b600000c13d000000ce01000039000000000101041a0000054601100197001b00000002001d0000001a02200069150a147c0000040f000000400100043d00000040021000390000001b03000029000000000032043500000020021000390000001a0300002900000000003204350000001802000029000000000021043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f00000587011001c70000800d020000390000000303000039000005880400004100000014050000290000000006000019150a15000000040f0000000101200190000000850000613d0000000101000039000000000011041b00000000010000190000150b0001042e0000000e010000290000000501100270000000000100001f000000400100043d0000006402100039000005b00300004100000000003204350000004402100039000005b103000041000000000032043500000024021000390000002e03000039000001c70000013d0000000101000039000000000201041a000000020220008c00000a850000613d0000000202000039000000000021041b0000001b0100002900000000001004350000001801000029000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000400200043d000005840320009c000007a60000213d000000000101043b0000004003200039000000400030043f000000000101041a00000546031001970000000004320436000000a001100270000000ff0210018f00000000002404350000001a01000029150a11290000040f001800000001001d00000017020000290000001903000029150a120d0000040f000005850100004100000000001004390000000001000412001900000001001d0000000400100443000000240000044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b000000000200001900000c7a0000c13d001900000002001d0000001a0420006900000000030004100000001b010000290000001202000029150a12bd0000040f000000400100043d00000040021000390000001903000029000000000032043500000020021000390000001a0300002900000000003204350000001802000029000000000021043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f00000587011001c70000800d020000390000000303000039000005880400004100000012050000290000001b06000029150a15000000040f0000000101200190000000850000613d00000af30000013d0019001a201000bd0000001a0200006b00000b670000613d00000019030000290000001a323000fa000000000112004b00000bf10000c13d000005850100004100000000001004390000001b0100002900000004001004430000002001000039000000240010044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001902000029000027103220011a001b00000002001d0000054601100197150a147c0000040f0000001b0300002900000000020300190000001a0130006c00000ad20000a13d00000bf10000013d000000000302004b000000000300001900000b870000613d000000000141034f000000000301043b0000000301200210000000010400008a000000000114022f000000000141013f000000000113016f0000000102200210000000000121019f00000bdd0000013d000001000700008a000000000676016f0000000000650435000000000404004b000000200600003900000000060060190000003f046000390003002000000092000000030540017f0000000004350019000000000554004b000000000500001900000001050040390000057d0640009c000007a60000213d0000000105500190000007a60000c13d000000400040043f00000100011000390000000000310435000000db01000039000200000001001d000000000101041a000005460110019800000c530000c13d00000002020003670000002401200370000000000101043b000000a401100039000000000312034f000000000303043b000005b70430009c000007b90000813d0000002001100039000000000412034f000000000404043b000005b70540009c000008060000813d0000002001100039000000000512034f000000000505043b000005b80650009c000008120000813d000000e00610008a000000000162034f000000000701043b000005460170009c000000850000213d000000400100043d000000000707004b00000cb80000c13d0000082c0000013d000005a505000041000000000800001900000000070800190000000008470019000000000881034f000000000808043b000000000085041b00000001055000390000002008700039000000000968004b00000bc50000413d0000004404700039000000000626004b00000bdb0000813d0000000306200210000000f80660018f000000010700008a000000000667022f000000000676013f0000000003340019000000000131034f000000000101043b000000000161016f000000000015041b000000010120021000000001011001bf0000001102000029000000000012041b0000001801000029000000000101041a001b00000001001d000005ab01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b00000bf70000c13d000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c00010430000005ac020000410000000000200439000000010110008a000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001b0110014f00000546011001970000001003000029000000000203041a000005aa02200197000000000121019f000000000013041b0000002002000039000000400100043d00000000022104360000001703000029000000000303041a000005460330019700000000003204350000001802000029000000000202041a000000400310003900000000002304350000001602000029000000000202041a000000600310003900000000002304350000001502000029000000000202041a000000800310003900000000002304350000001402000029000000000202041a000000a00310003900000000002304350000001302000029000000000202041a000000c00310003900000000002304350000001202000029000000000202041a000000e00310003900000000002304350000001902000029000000000202041a000001200300003900000120041000390000000000340435000001000310003900000000002304350000001102000029000000000402041a000000010540019000000001034002700000007f0230018f000000000203c0190000001f0320008c00000000030000190000000103002039000000000334013f00000001033001900000039d0000c13d000001400310003900000000002304350000016003100039000000000505004b00000c9e0000613d00000011040000290000000000400435000000000402004b000000000400001900000ca40000613d000005a50500004100000000040000190000000006340019000000000705041a000000000076043500000001055000390000002004400039000000000624004b00000c4b0000413d00000ca40000013d0000000001020433000100000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000010210006c00000c730000813d00000002020003670000000e030000290000000003030433000000000131004b00000cb70000a13d0000002401200370000000000101043b0000004401100039000000000112034f000000000101043b0000000c030000290000000003030433000000000113004b000007ee0000c13d00000ba90000013d000000400100043d0000004402100039000005b403000041000000000032043500000024021000390000001a030000390000010e0000013d0017001a201000bd0000001a0200006b00000c810000613d00000017030000290000001a323000fa000000000112004b00000bf10000c13d00000585010000410000000000100439000000190100002900000004001004430000002001000039000000240010044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001702000029000027102420011a001900000004001d00000546031001970000001b010000290000001202000029150a12bd0000040f000000190300002900000000020300190000001a0130006c00000b3e0000a13d00000bf10000013d000001000500008a000000000454016f0000000000430435000000000202004b000000200400003900000000040060190000054402000041000005440310009c000000000102801900000040011002100000016003400039000005440430009c00000000030280190000006003300210000000000113019f0000000003000414000005440430009c0000000003028019000000c002300210000000000121019f0000059e011001c70000800d020000390000000103000039000005ad04000041000007260000013d00000ba90000013d0000004007600039000000000672034f000000000606043b000000000806004b00000cbe0000c13d000008a40000013d0000002008700039000000000782034f000000000707043b000000000907004b00000cc40000c13d000009540000013d000000000667004b00000cc70000a13d000009c20000013d0000002006800039000000000262034f000000000202043b000000000272004b00000ccd0000a13d000009e50000013d0000000002350019000000000242004b00000a5f0000813d000000000200041a0000ff000220019000000cd90000c13d0000006402100039000005cb0300004100000000003204350000004402100039000005cc0300004100000a640000013d000005bb0210009c000007a60000213d0000002402100039000005bc0300004100000000003204350000004402100039000000000300041400000060040000390000000000420435000005bd02000041000000000021043500000064021000390000000000020435000000040210003900000000000204350000054402000041000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f000005be011001c70000800602000039150a15000000040f000000010220019000000cfb0000613d000000000101043b000000000201004b00000d250000c13d0000000301000367000000010200003100000d000000013d000300000001035500000000020100190000006002200270000105440020019d0000054402200197000000400300043d0000001f0420018f000000050520027200000d0d0000613d000000000600001900000005076002100000000008730019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d050000413d000000000604004b00000d1c0000613d0000000505500210000000000151034f00000000055300190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440430009c0000000003018019000005440420009c000000000201801900000060012002100000004002300210000000000112019f0000150c0001043000000546031001970000009701000039000000000201041a000005aa02200197000000000232019f000000000021041b000005af010000410000000000100439000e00000003001d000000040030044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000101004b000000850000613d000000400200043d000005bf01000041000c00000002001d0000000001120436000100000001001d00000000010004140000000e02000029000000040220008c00000d580000613d0000054402000041000005440310009c00000000010280190000000c04000029000005440340009c00000000020440190000004002200210000000c001100210000000000121019f000005c0011001c70000000e02000029150a15000000040f00000000030100190000006003300270000105440030019d00000544033001970003000000010355000000010220019000000d6d0000613d0000000c010000290000057d0110009c000007a60000213d0000000c01000029000000400010043f0000001302000029000000160120006b00000d7d0000c13d0000001102000029000000160120006b00000d840000c13d0000001701000029000005460110019800000d960000c13d0000000c030000290000004401300039000005ca0200004100000000002104350000002401300039000000120200003900000d8a0000013d000000400200043d0000001f0430018f000000050530027200000d7a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d720000413d000000000604004b000007910000613d000007840000013d0000000c030000290000004401300039000005c102000041000000000021043500000024013000390000001b0200003900000d8a0000013d0000000c030000290000004401300039000005c202000041000000000021043500000024013000390000001d020000390000000000210435000005490100004100000000001304350000000401300039000000200200003900000000002104350000054401000041000005440230009c0000000003018019000000400130021000000550011001c70000150c0001043000000002020003670000002403200370000000000303043b0000000404300039000000000542034f000000000505043b000005460650009c000000850000213d0000000a07000029000000000607041a000005aa06600197000000000556019f000000000057041b0000002005400039000000000552034f000000000505043b0000000b06000029000000000056041b0000004005400039000000000552034f000000000505043b0000000906000029000000000056041b0000006005400039000000000552034f000000000505043b0000000806000029000000000056041b0000008005400039000000000552034f000000000505043b0000000706000029000000000056041b000000a005400039000000000552034f000000000505043b0000000606000029000000000056041b000000c005400039000000000552034f000000000505043b0000000506000029000000000056041b000000e005400039000000000552034f000000000505043b0000000406000029000000000056041b0000010004400039000000000442034f000000000404043b00000000050000310000000006350049000000230660008a000005a407000041000000000864004b00000000080000190000000008078019000005a406600197000005a409400197000000000a69004b0000000007008019000000000669013f000005a40660009c000000000708c019000000000607004b000000850000c13d00000000033400190000000404300039000000000442034f000000000404043b0000057d0640009c000000850000213d00000000054500490000002403300039000005a406000041000000000753004b00000000070000190000000007062019000005a405500197000005a408300197000000000958004b0000000006008019000000000558013f000005a40550009c000000000607c019000000000506004b000000850000c13d0000001005000029000000000605041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f00000001066001900000039d0000c13d000000200650008c00000e0d0000413d0000001f064000390000000506600270000005a507600041000005a506000041000000200840008c0000000006078019000000100700002900000000007004350000001f055000390000000505500270000005a505500041000000000756004b00000e0d0000813d000000000006041b0000000106600039000000000756004b00000e090000413d0000001f0540008c0000000105400210000000030640021000000e180000a13d00000010070000290000000000700435000000030840018000000e230000c13d000005a507000041000000000900001900000e2d0000013d000000000404004b000000000400001900000e1d0000613d000000000332034f000000000403043b000000010300008a000000000663022f000000000336013f000000000334016f000000000353019f00000e390000013d000005a5070000410000000009000019000000000a390019000000000aa2034f000000000a0a043b0000000000a7041b00000001077000390000002009900039000000000a89004b00000e250000413d000000000448004b00000e380000813d000000f80460018f000000010600008a000000000446022f000000000464013f0000000003390019000000000332034f000000000303043b000000000343016f000000000037041b00000001035001bf0000001004000029000000000034041b000000cb03000039000000000503041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f00000001055001900000039d0000c13d000000200540008c00000e5a0000413d0000001a070000290000001f057000390000000505500270000005a206500041000005a205000041000000200770008c000000000506801900000000003004350000001f044000390000000504400270000005a204400041000000000645004b00000e5a0000813d000000000005041b0000000105500039000000000645004b00000e560000413d0000001a050000290000001f0450008c0000000104500210000000030550021000000e660000a13d000000000030043500000003070000290000001a0770018000000e710000c13d000005a206000041000000000800001900000e7b0000013d0000001a0600006b000000000600001900000e6b0000613d0000001902200360000000000602043b000000010200008a000000000552022f000000000225013f000000000226016f000000000242019f00000e870000013d000005a20600004100000000080000190000001909800029000000000992034f000000000909043b000000000096041b00000001066000390000002008800039000000000978004b00000e730000413d0000001a0770006c00000e860000813d000000f80550018f000000010700008a000000000557022f000000000575013f0000001907800029000000000272034f000000000202043b000000000252016f000000000026041b00000001024001bf000000000023041b000005c304000041000000180500006b0000000004006019000000cc05000039000000000605041a000005c406600197000000000464019f000000000414019f000000000045041b00000015040000290000000c0700002900000000004704350000000a04000029000000000404041a0000054604400197000000800570003900000000004504350000000b04000029000000000404041a000000a00570003900000000004504350000000904000029000000000404041a000000c00570003900000000004504350000000804000029000000000404041a000000e00570003900000000004504350000000704000029000000000404041a000001000570003900000000004504350000000604000029000000000404041a000001200570003900000000004504350000000504000029000000000404041a000001400570003900000000004504350000000404000029000000000404041a000001800570003900000120060000390000000000650435000001600570003900000000004504350000001004000029000000000504041a000000010750019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000665013f00000001066001900000039d0000c13d0000000c08000029000001a0068000390000000000460435000001c006800039000000000707004b00000ed90000613d00000010050000290000000000500435000000000504004b000000000700001900000edf0000613d000005a50500004100000000070000190000000008670019000000000905041a000000000098043500000001055000390000002007700039000000000847004b00000ed10000413d00000edf0000013d000001000700008a000000000575016f0000000000560435000000000404004b00000020070000390000000007006019000000010820019000000001042002700000007f0540018f000000000504c01900000000066700190000000c0460006a000000010700002900000000004704350000001f0750008c00000000070000190000000107002039000000000772013f00000001077001900000039d0000c13d0000000006560436000000000708004b00000efe0000613d0000000000300435000000000205004b000000000200001900000f040000613d000005a20300004100000000020000190000000007260019000000000803041a000000000087043500000001033000390000002002200039000000000752004b00000ef60000413d00000f040000013d000001000300008a000000000232016f0000000000260435000000000205004b000000200200003900000000020060190000000c060000290000006003600039000000180500002900000000005304350000004003600039000000000013043500000000012400190000054402000041000005440360009c000000000602801900000040036002100000002001100039000005440410009c00000000010280190000006001100210000000000131019f0000000003000414000005440430009c0000000003028019000000c002300210000000000112019f0000059e011001c70000800d020000390000000103000039001300000003001d000005c504000041150a15000000040f0000000101200190000000850000613d000000160100006b00000f910000613d001a00000000001d0000001a010000290000000502100210001800140020002d00000002030003670000001801300360000000000101043b000005460410009c000000850000213d000000000401004b00000fe20000613d0000001204200029000000000443034f000000000404043b000005460540009c000000850000213d000000000504004b00000fe90000613d0000000f02200029000000000223034f000000000202043b000000ff0320008c000000850000213d000000400300043d001900000003001d000005840330009c000007a60000213d00000019050000290000004003500039000000400030043f0000000003450436001500000003001d00000000002304350000000000100435000000cd01000039001700000001001d000000200010043f0000000001000414000005440210009c0000054401008041000000c00110021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000190200002900000000020204330000054602200197000000000101043b000000000301041a000005c403300197000000000223019f00000015030000290000000003030433000000a0033002100000059703300197000000000232019f000000000021041b00000018010000290000000201100367000000000101043b001900000001001d000005460110009c000000850000213d000000190100002900000000001004350000001701000029000000200010043f0000000001000414000005440210009c0000054401008041000000c00110021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000000101043b000000400200043d00000019030000290000000003320436000000000101041a00000546041001970000000000430435000000a001100270000000ff0110018f00000040032000390000000000130435000005440120009c000005440400004100000000020480190000000001000414000005440310009c00000000010480190000004002200210000000c001100210000000000121019f00000587011001c70000800d020000390000000103000039000005c604000041150a15000000040f0000000101200190000000850000613d0000001a020000290000000102200039001a00000002001d000000160120006c00000f240000413d0000000b01000029000000000101041a001a00000001001d000005ab01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b00000bf10000613d000005ac020000410000000000200439000000010110008a000000040010044300000544030000410000000001000414000005440210009c0000000001038019000000c0011002100000059d011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001a0110014f00000546011001970000000203000029000000000203041a000005aa02200197000000000112019f000000000013041b0000001b0100002900000546061001970000006501000039000000000201041a000005aa03200197000000000363019f000000000031041b0000000001000414000005440310009c0000054401008041000000c0011002100000059e011001c700000546052001970000800d020000390000000303000039000005ae04000041150a15000000040f0000000101200190000000850000613d0000000d0100006b000007290000c13d000000000200041a000005c901200197000000000010041b000000400100043d0000001303000029000000000031043500000544020000410000000005000414000005440450009c0000000005028019000005440410009c00000000010280190000004001100210000000c002500210000000000112019f0000054b011001c70000800d020000390000054c04000041000007260000013d000000000001042f000000400100043d0000004402100039000005c8030000410000000000320435000000240210003900000012030000390000010e0000013d000000400100043d0000004402100039000005c7030000410000010b0000013d000005e00210009c00000ff20000813d0000004001100039000000400010043f000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b000000000200001900000001020040390000057d0310009c000010050000213d0000000102200190000010050000c13d000000400010043f000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c0001043000000000430104340000000001320436000000000203004b000010170000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000532004b000010100000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000546061001970000006501000039000000000201041a000005aa03200197000000000363019f000000000031041b00000544010000410000000003000414000005440430009c0000000003018019000000c0013002100000059e011001c700000546052001970000800d020000390000000303000039000005ae04000041150a15000000040f0000000101200190000010320000613d000000000001042d00000000010000190000150c000104300002000000000002000000400a00043d000005e10200004100000000062a043600000000030004140000054602100197000000040120008c000010410000c13d0000000103000031000000a00130008c0000000004030019000000a004008039000010740000013d000100000006001d0000054401000041000005440430009c00000000030180190000054404a0009c00000000010a40190000004001100210000000c003300210000000000113019f000005c0011001c700020000000a001d150a15050000040f000000020a000029000000000301001900000060033002700000054403300197000000a00430008c0000000004030019000000a0040080390000001f0540018f0000000506400272000010600000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000010580000413d000000000705004b0000106f0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000010c70000613d00000001060000290000001f01400039000001e00110018f0000000002a10019000000000112004b000000000100001900000001010040390000057d0420009c000010a10000213d0000000101100190000010a10000c13d000000400020043f0000009f0130008c0000109f0000a13d00000000030a0433000005e20130009c0000109f0000213d0000006001a00039000000000501043300000000010604330000008004a000390000000004040433000005e20640009c0000109f0000213d000005a406000041000000000701004b00000000070000190000000007064019000005a408100197000000000908004b000000000600a019000005a40880009c000000000607c019000000000606004b000010a70000c13d000000000601004b000010a70000613d000000000604004b000010ad0000613d000000000505004b000010b00000613d000000000334004b000010b60000413d000000000001042d00000000010000190000150c00010430000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c000104300000004401200039000005e603000041000000000031043500000024012000390000000e03000039000010bb0000013d0000004401200039000005e503000041000010b80000013d0000004401200039000005e403000041000000000031043500000024012000390000001203000039000010bb0000013d0000004401200039000005e303000041000000000031043500000024012000390000000b030000390000000000310435000005490100004100000000001204350000000401200039000000200300003900000000003104350000054401000041000005440320009c0000000002018019000000400120021000000550011001c70000150c00010430000000400200043d0000001f0430018f0000000505300272000010d40000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000010cc0000413d000000000604004b000010e30000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000121019f0000150c000104300001000000000002000100000001001d000005ab01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f00000001022001900000110d0000613d000000000101043b000000000201004b0000110e0000613d000005ac020000410000000000200439000000010110008a000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800b02000039150a15050000040f00000001022001900000110d0000613d000000000101043b000000010110014f0000054601100197000000000001042d000000000001042f000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c00010430000000d502000039000000000202041a000000000302004b000011210000613d0000054602200198000011230000613d000000db03000039000000000303041a000000000113013f0000054601100197000005463220012900000000212100d9000000000001042d0000000001000019000000000001042d000005940100004100000000001004350000001201000039000000040010043f00000595010000410000150c000104300004000000000002000000000a020019000000000b010019000000400c00043d000005e10100004100000000061c043600000000010004140000054602300197000000040320008c000011380000c13d0000000103000031000000a00130008c0000000004030019000000a0040080390000116f0000013d000100000006001d00030000000b001d00040000000a001d0000054403000041000005440410009c00000000010380190000054404c0009c00000000030c40190000004003300210000000c001100210000000000131019f000005c0011001c700020000000c001d150a15050000040f000000020c000029000000000301001900000060033002700000054403300197000000a00430008c0000000004030019000000a0040080390000001f0540018f0000000506400272000011590000613d0000000007000019000000050870021000000000098c0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000011510000413d000000000705004b000011680000613d0000000506600210000000000761034f00000000066c00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000000040a000029000000030b000029000011ea0000613d00000001060000290000001f01400039000001e00210018f0000000001c20019000000000221004b000000000200001900000001020040390000057d0410009c000011be0000213d0000000102200190000011be0000c13d000000400010043f0000009f0230008c000011bc0000a13d00000000030c0433000005e20230009c000011bc0000213d0000006002c00039000000000502043300000000020604330000008004c000390000000004040433000005e20640009c000011bc0000213d000005a406000041000000000702004b00000000070000190000000007064019000005a408200197000000000908004b000000000600a019000005a40880009c000000000607c019000000000606004b000011c40000c13d000000000602004b000011c40000613d000000000604004b000011ca0000613d000000000505004b000011cd0000613d000000000334004b000011d30000413d0000000031b200a900000000030b004b000011b10000613d0000000043b100d9000000000223004b000011b30000c13d0000004e02a0008c000011b30000813d00000000020a004b000011b90000613d0000000a0300003900000001020000390000000104a001900000000004030019000000010400603900000000422400a90000000104a0008c000000010aa0027000000000433300a9000011a50000213d000000000302004b000011e40000613d00000000212100d9000000000001042d0000004d02a0008c000011a10000a13d000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c00010430000000010200003900000000212100d9000000000001042d00000000010000190000150c00010430000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c000104300000004402100039000005e603000041000000000032043500000024021000390000000e03000039000011d80000013d0000004402100039000005e503000041000011d50000013d0000004402100039000005e403000041000000000032043500000024021000390000001203000039000011d80000013d0000004402100039000005e303000041000000000032043500000024021000390000000b030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000005940100004100000000001004350000001201000039000000040010043f00000595010000410000150c00010430000000400200043d0000001f0430018f0000000505300272000011f70000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000011ef0000413d000000000604004b000012060000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000121019f0000150c000104300007000000000002000700000001001d000000000103004b0000121d0000613d0000000201000367000000000421034f000000000404043b000005e704400197000005e80440009c000012a40000c13d000000210330008c000012ab0000c13d0000000102200039000000000121034f000000000101043b0000121f0000013d000000d101000039000000000101041a000400000001001d0000000001000411000600000001001d0000000000100435000000da01000039000500000001001d000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000012900000613d000000000101043b000000000201041a0000000701200029000000000221004b00000000020000190000000102004039000000010220008c0000128a0000613d000000040110006c000012920000213d000000d904000039000000000604041a0000000705600029000000000165004b0000000001000019000000010100403900000001011001900000128a0000c13d000000d001000039000000000101041a000000000115004b000012960000213d000000d201000039000000000101041a000000070110006c0000129d0000213d000000d701000039000000000201041a0001000100000092000000010320006c0000128a0000613d000200000006001d000300000005001d000400000004001d0000000102200039000000000021041b000000060100002900000000001004350000000501000029000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000012900000613d000000000101043b000000000101041a000000000101004b0000000404000029000000030500002900000002060000290000126f0000c13d000000d801000039000000000201041a000000010320006c0000128a0000613d0000000102200039000000000021041b000000000165004b0000128a0000413d000000000054041b000000060100002900000000001004350000000501000029000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000012900000613d000000000101043b000000000301041a0000000702300029000000000332004b0000000003000019000000010300403900000001033001900000128a0000c13d000000000021041b000000000001042d000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c0001043000000000010000190000150c00010430000000400100043d0000004402100039000005ed03000041000012990000013d000000400100043d0000004402100039000005ec03000041000000000032043500000024021000390000001b03000039000012b10000013d000000400100043d0000004402100039000005eb03000041000000000032043500000024021000390000001603000039000012b10000013d000000400100043d0000004402100039000005e903000041000000000032043500000024021000390000000c03000039000012b10000013d000000400100043d0000004402100039000005ea030000410000000000320435000000240210003900000017030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c000104300005000000000002000000400600043d000000640560003900000000004504350000054603300197000000440460003900000000003404350000002004600039000005ee03000041000300000004001d000000000034043500000546022001970000002403600039000000000023043500000064020000390000000000260435000005ef0260009c000013560000813d0000054603100197000000a002600039000000400020043f000005f00160009c000013560000213d000000e001600039000000400010043f0000002001000039000200000001001d000100000002001d0000000000120435000400000006001d000000c001600039000005f1020000410000000000210435000005af010000410000000000100439000500000003001d000000040030044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f00000001022001900000135e0000613d000000000101043b000000000101004b0000135f0000613d0000000401000029000000000601043300000000010004140000000502000029000000040320008c000013260000c13d00000001020000390000000104000031000000000104004b0000133b0000613d0000001f01400039000000200300008a000000000131016f0000003f01100039000000000131016f000000400300043d0000000001130019000000000531004b000000000500001900000001050040390000057d0610009c000013560000213d0000000105500190000013560000c13d000000400010043f0000001f0540018f000000000143043600000003060003670000000504400272000013160000613d000000000700001900000005087002100000000009810019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b0000130e0000413d000000000705004b0000133d0000613d0000000504400210000000000646034f00000000044100190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000133d0000013d00000544030000410000000305000029000005440450009c00000000050380190000004004500210000005440560009c00000000060380190000006005600210000000000545019f000005440410009c0000000001038019000000c001100210000000000115019f150a15000000040f000000010220018f00030000000103550000006001100270000105440010019d0000054404100197000000000104004b000012f90000c13d000000600300003900000080010000390000000003030433000000000202004b000013710000613d000000000203004b000013550000613d000005a4020000410000001f0430008c00000000040000190000000004022019000005a403300197000000000503004b0000000002008019000005a40330009c000000000204c019000000000202004b0000135c0000613d0000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000135c0000c13d000000000101004b000013880000613d000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c0001043000000000010000190000150c00010430000000000001042f000000400100043d0000004402100039000005f403000041000000000032043500000024021000390000001d030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000000000203004b0000139d0000c13d000000400300043d000500000003001d0000054901000041000000000013043500000004013000390000000202000029000000000021043500000024023000390000000101000029150a100b0000040f000000050400002900000000014100490000054402000041000005440310009c0000000001028019000005440340009c000000000402801900000040024002100000006001100210000000000121019f0000150c00010430000000400100043d0000006402100039000005f20300004100000000003204350000004402100039000005f303000041000000000032043500000024021000390000002a030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c000000000102801900000040011002100000054a011001c70000150c000104300000054402000041000005440430009c0000000003028019000005440410009c000000000102801900000040011002100000006002300210000000000112019f0000150c000104300004000000000002000400000002001d0000054604100197000000400300043d000005e00130009c0000142c0000813d0000004001300039000000400010043f0000002001300039000005f10200004100000000002104350000002001000039000200000001001d000100000003001d0000000000130435000005af010000410000000000100439000300000004001d000000040040044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f0000000102200190000014340000613d000000000101043b000000000101004b000014350000613d0000000401000029000000006301043400000000010004140000000302000029000000040420008c000013fd0000c13d00000001020000390000000104000031000000000104004b000014110000613d0000001f01400039000000200300008a000000000131016f0000003f01100039000000000131016f000000400300043d0000000001130019000000000531004b000000000500001900000001050040390000057d0610009c0000142c0000213d00000001055001900000142c0000c13d000000400010043f0000001f0540018f000000000143043600000003060003670000000504400272000013ed0000613d000000000700001900000005087002100000000009810019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000013e50000413d000000000705004b000014130000613d0000000504400210000000000646034f00000000044100190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000014130000013d0000054404000041000005440530009c00000000030480190000006003300210000005440560009c00000000060480190000004005600210000000000553019f000005440310009c0000000001048019000000c001100210000000000115019f150a15000000040f000000010220018f00030000000103550000006001100270000105440010019d0000054404100197000000000104004b000013d00000c13d000000600300003900000080010000390000000003030433000000000202004b000014470000613d000000000203004b0000142b0000613d000005a4020000410000001f0430008c00000000040000190000000004022019000005a403300197000000000503004b0000000002008019000005a40330009c000000000204c019000000000202004b000014320000613d0000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000014320000c13d000000000101004b0000145e0000613d000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c0001043000000000010000190000150c00010430000000000001042f000000400100043d0000004402100039000005f403000041000000000032043500000024021000390000001d030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000000000203004b000014730000c13d000000400300043d000400000003001d0000054901000041000000000013043500000004013000390000000202000029000000000021043500000024023000390000000101000029150a100b0000040f000000040400002900000000014100490000054402000041000005440310009c0000000001028019000005440340009c000000000402801900000040024002100000006001100210000000000121019f0000150c00010430000000400100043d0000006402100039000005f20300004100000000003204350000004402100039000005f303000041000000000032043500000024021000390000002a030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c000000000102801900000040011002100000054a011001c70000150c000104300000054402000041000005440430009c0000000003028019000005440410009c000000000102801900000040011002100000006002300210000000000112019f0000150c000104300003000000000002000100000002001d000200000001001d0000009701000039000000000101041a000005af0200004100000000002004390000054601100197000300000001001d000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f0000000102200190000014bd0000613d000000000101043b000000000101004b000014be0000613d000000400500043d000005f5010000410000000000150435000000020100002900000546011001970000000402500039000000000012043500000000010004140000000304000029000000040240008c000014b90000613d0000054402000041000005440310009c0000000001028019000005440350009c000200000005001d00000000020540190000004002200210000000c001100210000000000121019f0000000103000029000000000203004b000014ae0000613d000005f6011001c700008009020000390000000005000019000014b00000013d00000595011001c70000000002040019150a15000000040f000300000001035500000000030100190000006003300270000105440030019d000005440330019700000001022001900000000205000029000014c60000613d000005f70150009c000014c00000813d000000400050043f000000000001042d000000000001042f00000000010000190000150c00010430000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c00010430000000400200043d0000001f0430018f0000000505300272000014d30000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000014cb0000413d000000000604004b000014e20000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000112019f0000150c00010430000000000001042f0000054403000041000005440410009c00000000010380190000004001100210000005440420009c00000000020380190000006002200210000000000112019f0000000002000414000005440420009c0000000002038019000000c002200210000000000112019f0000059e011001c70000801002000039150a15050000040f0000000102200190000014fe0000613d000000000101043b000000000001042d00000000010000190000150c0001043000001503002104210000000102000039000000000001042d0000000002000019000000000001042d00001508002104230000000102000039000000000001042d0000000002000019000000000001042d0000150a000004320000150b0001042e0000150c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff616c697a696e6700000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e69746908c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000200000000000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498dac4fd790edde0c2ab54e0618fa7d2d818b20fe5504b25328f64c7246121e0eb00000002000000000000000000000000000000c0000001000000000000000000666565526563697069656e74203d3d20300000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000008dbc834200000000000000000000000000000000000000000000000000000000cc8f918100000000000000000000000000000000000000000000000000000000e6064de200000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000ffa1ad7400000000000000000000000000000000000000000000000000000000e6064de300000000000000000000000000000000000000000000000000000000ea51764500000000000000000000000000000000000000000000000000000000cc8f918200000000000000000000000000000000000000000000000000000000e2982c2100000000000000000000000000000000000000000000000000000000e49248d500000000000000000000000000000000000000000000000000000000a9e0c9c200000000000000000000000000000000000000000000000000000000b4bd9e2600000000000000000000000000000000000000000000000000000000b4bd9e2700000000000000000000000000000000000000000000000000000000c3b88b4200000000000000000000000000000000000000000000000000000000a9e0c9c300000000000000000000000000000000000000000000000000000000ab803a76000000000000000000000000000000000000000000000000000000008dbc83430000000000000000000000000000000000000000000000000000000092a85fde00000000000000000000000000000000000000000000000000000000a04748f600000000000000000000000000000000000000000000000000000000621aa9240000000000000000000000000000000000000000000000000000000075f620ab00000000000000000000000000000000000000000000000000000000826b90f100000000000000000000000000000000000000000000000000000000826b90f2000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000075f620ac0000000000000000000000000000000000000000000000000000000079502c5500000000000000000000000000000000000000000000000000000000621aa92500000000000000000000000000000000000000000000000000000000669ad09200000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000031ab05170000000000000000000000000000000000000000000000000000000047535d7a0000000000000000000000000000000000000000000000000000000047535d7b000000000000000000000000000000000000000000000000000000004cc233a80000000000000000000000000000000000000000000000000000000031ab05180000000000000000000000000000000000000000000000000000000031b3eb940000000000000000000000000000000000000000000000000000000001c3753f000000000000000000000000000000000000000000000000000000001be19560000000000000000000000000000000000000000000000000000000002ddbd13a322e3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff938b5f3299a1f3b18e458564efbb950733226014eece26fae19012d850b48d83020000020000000000000000000000000000000400000000000000000000000001c3753f00000000000000000000000000000000000000000000000000000000626164206d65726b6c652070726f6f6620666f722073616c6500000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391320200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000020000000000000000000000000000000000006000000000000000000000000000f93dbdb72854b6b6fb35433086556f2635fc83c37080c667496fecfa650fb4696e76616c6964207061796d656e7420746f6b656e000000000000000000000000000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000020000000000000000000000000e3a9db1a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000004d75737420627579207769746820616e20454f41000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064617461206e6f74207065726d6974746564206f6e207075626c69632073616c73616c6520686173206e6f74207374617274656420796574000000000000000073616c652068617320656e64656400000000000000000000000000000000000073616c6520627579206c696d69742072656163686564000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006e6f7420796f7572207475726e207965740000000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400005265656e7472616e637947756172643a207265656e7472616e742063616c6c006e6174697665207061796d656e74732064697361626c6564000000000000000000000000000000000000000000000000000000400000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39020000020000000000000000000000000000002400000000000000000000000002000000000000000000000000000000000000000000000000000000000000005472616e73666572206661696c65642e000000000000000000000000000000003b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd20000000000000000000000000000000000000060000000800000000000000000a7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb00000000000000000000000000000000000000400000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd000000000000000000000000000000000000000000000000fffffffffffffe5f00000000000000000000000000000000000000000000000000000000f48657000000000000000000000000000000000000000000000000000000000000093a804f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ffffffffffffffffffffffff000000000000000000000000000000000000000042cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd180b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3f19e3240beb82d0dfa0a35ed50201f0ac38ea92b9b29450527293aa8ccd0979b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e01806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c726561ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000fffffffffffffedf73616c65206973206f7665723a2063616e6e6f74207570617465000000000000746172740000000000000000000000000000000000000000000000000000000065646974696e672073616c654d6178696d756d2061667465722073616c65207300000000000000000000000000000000000000000000000000000000f48657010000000000000000000000000000000000000000000000000000000000093a816178517565756554696d6500000000000000000000000000000000000000000073616c65206d757374206265206f70656e20666f72206174206c65617374206d000000000000000000000000000000000000000000000000ffffffffffffff7b010000bf8042c7a73f97bf987e5e255a28fcb320c2ced98580994ffc1d20849d9c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd02000000000000000000000000000000000000840000000000000000000000008129fc1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000746f6b656e20616e64206f7261636c65206c656e6774687320213d0000000000746f6b656e20616e6420646563696d616c73206c656e6774687320213d0000000000000000000000000000010000000000000000000000000000000000000000ffffffffffffffffffffff000000000000000000000000000000000000000000b08510a4a112663ff701fcf43686a47fd456cb1a471dd63d662b73612cf700b31573dfedb5172e215558f8ffa409a71a5e42c596c15c482a04ff548914ebfa77746f6b656e206f7261636c65203d3d20300000000000000000000000000000007061796d656e7420746f6b656e203d3d20300000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6e6174697665206f7261636c65203d3d203000000000000000000000000000006e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206970757263686173654d696e696d756d203e20757365724d6178696d756d000000757365724d6178696d756d203e2073616c654d6178696d756d00000000000000757365724d6178696d756d203d3d20300000000000000000000000000000000073616c654d6178696d756d203d3d203000000000000000000000000000000000726563697069656e74203d3d20616464726573732830290000000000000000006d61782071756575652074696d65203e20363034383030202831207765656b29656e64203e203431303234343438303020284a616e20312032313030290000007374617274203e203431303234343438303020284a616e20312032313030290051cff8d90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000008000000000000000000200000000000000000000000000000000000020000000800000000000000000bfbef9c12fc2cf7df9f0b7679d5863e31a093e9c2c8d5dd9de1ddca31a0748284469737472696275746f72203d3d20616464726573732830290000000000000070a0823100000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000f4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d000000000000000000000000000000000000000000000000ffffffffffffff800200000000000000000000000000000000000000000000a000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffffc0feaf968c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff7374616c65207072696365000000000000000000000000000000000000000000726f756e64206e6f7420636f6d706c6574650000000000000000000000000000616e73776572203d3d20300000000000000000000000000000000000000000006e65676174697665207072696365000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000756e6b6e6f776e2064617461000000000000000000000000000000000000000064617461206c656e67746820213d203333206279746573000000000000000000707572636861736520756e646572206d696e696d756d00000000000000000000707572636861736520657863656564732073616c65206c696d697400000000007075726368617365206578636565647320796f7572206c696d6974000000000023b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff60000000000000000000000000000000000000000000000000ffffffffffffff1f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000f340fa0100000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000007c4bd3c54158dedf547ede1ccbf5e5476137795e975b408b576a380bdd3cee6e", + "entries": [ + { + "constructorArgs": [ + 0, + "0x0000000000000000000000000000000000000000" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [ + "0x0002000000000002000500000000000200000000030100190000006003300270000000900330019700010000003103550000008004000039000000400040043f0000000102200190000000280000c13d000000040230008c000000ff0000413d000000000201043b000000e002200270000000920420009c000000300000a13d000000930420009c000000540000213d000000960420009c000000d20000613d000000970220009c000000ff0000c13d0000000002000416000000240330008c000000ff0000413d000000000202004b000000ff0000c13d0000000401100370000000000101043b0000009b0210009c000000ff0000213d00000000001004350000006501000039000000200010043f0000000001000019023a021e0000040f000000000101041a000000800010043f000000a5010000410000023b0001042e0000000001000416000000000101004b000000ff0000c13d00000020010000390000010000100443000001200000044300000091010000410000023b0001042e000000980420009c000000830000613d000000990120009c000000db0000613d0000009a0120009c000000ff0000c13d0000000001000416000000000101004b000000ff0000c13d0000000004000415000000050440008a0000000504400210000000000300041a0000ff0002300190000001010000c13d0000000004000415000000040440008a0000000504400210000000ff01300190000001010000c13d000000ab0130019700000101011001bf0000000002000019000000000010041b0000ff0001100190000001270000c13d000000400100043d0000006402100039000000b10300004100000000003204350000004402100039000000b203000041000000000032043500000024021000390000002b030000390000017b0000013d000000940420009c000000f50000613d000000950220009c000000ff0000c13d000000240230008c000000ff0000413d0000000401100370000000000101043b0000009b041001970000009b0110009c000000ff0000213d0000003301000039000000000101041a0000009b011001970000000002000411000000000121004b000001650000c13d00000000004004350000006501000039000000200010043f00000090010000410000000002000414000000900320009c0000000002018019000000c0012002100000009c011001c70000801002000039000300000004001d023a02350000040f00000003050000290000000102200190000000ff0000613d000000000101043b000000000301041a00000000020004160000000003320019000000000423004b00000000040000190000000104004039000000010440008c0000018a0000c13d0000009f0100004100000000001004350000001101000039000000040010043f000000a0010000410000023c000104300000000002000416000000240330008c000000ff0000413d000000000202004b000000ff0000c13d0000000401100370000000000101043b0000009b031001970000009b0110009c000000ff0000213d0000003301000039000000000101041a0000009b011001970000000002000411000000000121004b000001650000c13d00000000003004350000006501000039000000200010043f00000090040000410000000001000414000000900210009c0000000001048019000000c0011002100000009c011001c70000801002000039000300000003001d023a02350000040f0000000102200190000000ff0000613d000000000101043b000000000101041a000200000001001d0000000001000414000000900210009c0000009001008041000000c0011002100000009c011001c70000801002000039023a02350000040f0000000102200190000000ff0000613d000000000101043b000000000001041b000000b50100004100000000001004390000000001000410000000040010044300000090010000410000000002000414000000900320009c0000000002018019000000c001200210000000a7011001c70000800a02000039023a02350000040f00000001022001900000016e0000613d000000000101043b000000020110006c0000019b0000813d000000400100043d0000004402100039000000bb03000041000000000032043500000024021000390000001d030000390000000000320435000000a10200004100000000002104350000000402100039000000200300003900000000003204350000009002000041000000900310009c00000000010280190000004001100210000000bc011001c70000023c000104300000000001000416000000000101004b000000ff0000c13d0000003301000039000000000101041a0000009b01100197000000800010043f000000a5010000410000023b0001042e0000000001000416000000000101004b000000ff0000c13d0000003301000039000000000201041a0000009b052001970000000003000411000000000335004b000001650000c13d000000ac02200197000000000021041b00000090010000410000000002000414000000900320009c0000000002018019000000c001200210000000ad011001c70000800d020000390000000303000039000000ae040000410000000006000019023a02300000040f0000000101200190000000ff0000613d00000000010000190000023b0001042e0000000002000416000000240330008c000000ff0000413d000000000202004b000000ff0000c13d0000000401100370000000000101043b0000009b021001970000009b0310009c000001510000a13d00000000010000190000023c00010430000300000004001d000100000002001d000200000003001d000000a60100004100000000001004390000000001000410000000040010044300000090010000410000000002000414000000900320009c0000000002018019000000c001200210000000a7011001c70000800202000039023a02350000040f00000001022001900000016e0000613d000000000101043b000000000101004b0000016f0000c13d0000000203000029000000ff0130018f000000010110008c0000000001000019000000010100603900000003020000290000000502200270000000000201001f000001720000c13d000000010100006b000000440000613d000001000100008a000000000113016f000000010200003900000001011001bf000000000010041b0000ff00011001900000004a0000613d000300000002001d00000000010004110000009b061001970000003301000039000000000201041a000000ac03200197000000000363019f000000000031041b00000090010000410000000003000414000000900430009c0000000003018019000000c001300210000000ad011001c70000009b052001970000800d020000390000000303000039000000ae04000041023a02300000040f0000000101200190000000ff0000613d000000030100006b000000f30000c13d000000000200041a000000af01200197000000000010041b0000000103000039000000400100043d000000000031043500000090020000410000000004000414000000900540009c0000000004028019000000900510009c00000000010280190000004001100210000000c002400210000000000112019f0000009d011001c70000800d02000039000000b004000041000000f00000013d0000003303000039000000000303041a0000009b033001970000000004000411000000000343004b000001650000c13d000000000202004b000001870000c13d000000a101000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f000000a201000041000000c40010043f000000a301000041000000e40010043f000000a4010000410000023c00010430000000a101000041000000800010043f0000002001000039000000840010043f000000a40010043f000000b301000041000000c40010043f000000b4010000410000023c00010430000000000001042f00000003010000290000000501100270000000000100001f000000400100043d0000006402100039000000a80300004100000000003204350000004402100039000000a903000041000000000032043500000024021000390000002e030000390000000000320435000000a10200004100000000002104350000000402100039000000200300003900000000003204350000009002000041000000900310009c00000000010280190000004001100210000000aa011001c70000023c00010430023a02070000040f00000000010000190000023b0001042e000000000031041b000000400100043d000000000021043500000090020000410000000003000414000000900430009c0000000003028019000000900410009c00000000010280190000004001100210000000c002300210000000000112019f0000009d011001c70000800d0200003900000002030000390000009e04000041000000f00000013d00000000010004140000000304000029000000040240008c000001a20000c13d00000001020000390000000001000031000001b30000013d0000009002000041000000900310009c0000000001028019000000c001100210000000020200006b000001aa0000c13d0000000002040019000001ae0000013d000000ad011001c7000080090200003900000002030000290000000005000019023a02300000040f00010000000103550000006001100270000000900010019d0000009001100197000000000301004b000001c90000c13d000000400100043d0000000102200190000001fe0000613d0000000202000029000000000021043500000090020000410000000003000414000000900430009c0000000003028019000000900410009c00000000010280190000004001100210000000c002300210000000000112019f0000009d011001c70000800d020000390000000203000039000000ba040000410000000305000029000000f00000013d000000b60310009c000001f80000813d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000000b70630009c000001f80000213d0000000105500190000001f80000c13d000000400030043f0000001f0310018f000000000414043600000001050003670000000501100272000001e80000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000001e00000413d000000000603004b000001b50000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000001b50000013d0000009f0100004100000000001004350000004101000039000000040010043f000000a0010000410000023c000104300000006402100039000000b80300004100000000003204350000004402100039000000b903000041000000000032043500000024021000390000003a030000390000017b0000013d0000009b061001970000003301000039000000000201041a000000ac03200197000000000363019f000000000031041b00000090010000410000000003000414000000900430009c0000000003018019000000c001300210000000ad011001c70000009b052001970000800d020000390000000303000039000000ae04000041023a02300000040f00000001012001900000021b0000613d000000000001042d00000000010000190000023c00010430000000000001042f0000009002000041000000900310009c00000000010280190000000003000414000000900430009c0000000003028019000000c0023002100000004001100210000000000121019f0000009c011001c70000801002000039023a02350000040f00000001022001900000022e0000613d000000000101043b000000000001042d00000000010000190000023c0001043000000233002104210000000102000039000000000001042d0000000002000019000000000001042d00000238002104230000000102000039000000000001042d0000000002000019000000000001042d0000023a000004320000023b0001042e0000023c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000008da5cb5a00000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f340fa01000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000e3a9db1a0000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000008129fc1c000000000000000000000000ffffffffffffffffffffffffffffffffffffffff020000000000000000000000000000000000004000000000000000000000000002000000000000000000000000000000000000200000000000000000000000002da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c44e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000000000000000000000000000000000200000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c7265610000000000000000000000000000000000000084000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420694f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657200000000000000000000000000000000000000640000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f390000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff6563697069656e74206d61792068617665207265766572746564000000000000416464726573733a20756e61626c6520746f2073656e642076616c75652c20727084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5416464726573733a20696e73756666696369656e742062616c616e6365000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000000000000000000000000000003dae99781553425da58a6990bef3d45f6ff97e2416794552f313e1489250dab9" + ], + "address": "0xCa785532ad49f974E41171fA4Ea8E4B5381aE0bD", + "txHash": "0x47fb517e2b600ca1445c070b564cc0571b452200dbf0e68fe9bf71ea2eb18018" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json index 54019d4c..ab6c21c7 100644 --- a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json @@ -1614,8 +1614,8 @@ "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", "deploymentType": "create", "factoryDeps": [], - "address": "0xc0A6eaa87d38313d48d35a5Be3df51F0d3c089D2", - "txHash": "0x7b4ca3dc425c04100b14d3d85175454562bd07e2351754836bf1bd99d9648371" + "address": "0x3A2e77Ac0F925fb8bCf0EE3Ed81F1f38080098C1", + "txHash": "0xf295c2c1ae7e3fc83f019cd8d6594e36afd6646f2f5f5a652ec8bf150a66f08a" } ] } diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json index fefb64ff..997b9622 100644 --- a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json @@ -242,6 +242,16 @@ "factoryDeps": [], "address": "0xC8F2dff2644542308CCa56D6ed6A41d1AC2F6Aee", "txHash": "0xbf2034e7c7e5f0ef356f945556ed6a8831c5d0997ff0bb64e3b2044cbd7d2d11" + }, + { + "constructorArgs": [ + "0x3A2e77Ac0F925fb8bCf0EE3Ed81F1f38080098C1" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0x76f5445532eA16859F8066cff317A949e8Fbe38D", + "txHash": "0xf8d46922fca70b39a4af28005135d1f8bf3ccb941d09d6f98e1f451629f7c7a1" } ] } diff --git a/packages/hardhat/zksync-hardhat/hardhat.config.ts b/packages/hardhat/zksync-hardhat/hardhat.config.ts index e8db4c21..99bb6fd3 100644 --- a/packages/hardhat/zksync-hardhat/hardhat.config.ts +++ b/packages/hardhat/zksync-hardhat/hardhat.config.ts @@ -3,7 +3,7 @@ import { HardhatUserConfig } from "hardhat/config"; import "@matterlabs/hardhat-zksync"; const config: HardhatUserConfig = { - defaultNetwork: "zkSyncSepoliaTestnet", + defaultNetwork: "zkSyncMainnet", networks: { zkSyncSepoliaTestnet: { url: "https://sepolia.era.zksync.dev", diff --git a/packages/subgraph/config.json b/packages/subgraph/config.json index c4cf3da6..9f89392d 100644 --- a/packages/subgraph/config.json +++ b/packages/subgraph/config.json @@ -815,5 +815,61 @@ "BlockNumber": 7001339 } ] + }, + "zkSync": { + "SubgraphNetwork": "zkSync", + "LowestStartBlock": 35809299, + "FlatPriceSaleFactory_v_2_1": [ + { + "Address": "0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083", + "BlockNumber": 35887357 + } + ], + "FlatPriceSale_v_2_1": [ + { + "Address": "0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F", + "BlockNumber": 35887345 + } + ], + "ContinuousVestingMerkleDistributorFactory": [ + { + "Address": "0x870C1744173498905c9a1Da624CcC9852513f90D", + "BlockNumber": 35887266 + } + ], + "TrancheVestingMerkleDistributorFactory": [ + { + "Address": "0xc6B19D47a336d3382f57EdD768233076a27C28c2", + "BlockNumber": 35887164 + } + ] + }, + "zkSyncTestnet": { + "SubgraphNetwork": "zkSync", + "LowestStartBlock": 35809299, + "FlatPriceSaleFactory_v_2_1": [ + { + "Address": "0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083", + "BlockNumber": 2690994 + } + ], + "FlatPriceSale_v_2_1": [ + { + "Address": "0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F", + "BlockNumber": 2690990 + } + ], + "ContinuousVestingMerkleDistributorFactory": [ + { + "Address": "0xf38756A27593CEd6b4bF3807b44a88908b3d8ccC", + "BlockNumber": 2691083 + } + ], + "TrancheVestingMerkleDistributorFactory": [ + { + "Address": "0x5B8a021F311BDAbE7DcA7bEf84DBF3D1FFa80846", + "BlockNumber": 2691107 + } + ] } } diff --git a/packages/subgraph/networks.json b/packages/subgraph/networks.json index 42313fa4..d8f8d4f1 100644 --- a/packages/subgraph/networks.json +++ b/packages/subgraph/networks.json @@ -314,6 +314,52 @@ "address": "0x99464d188Ceb88200eb09461Db8b5900D0B0F487" } }, + "zkSync": { + "ContinuousVestingMerkleDistributor": { + "address": "0xfb563bAAaB145Bd393b36a2a76E92A1712F41f8C" + }, + "ContinuousVestingMerkleDistributorFactory": { + "address": "0x870C1744173498905c9a1Da624CcC9852513f90D" + }, + "FlatPriceSaleFactory_v_2_1": { + "address": "0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083" + }, + "FlatPriceSale_v_2_1": { + "address": "0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F" + }, + "TrancheVestingMerkleDistributor": { + "address": "0xB63DC17fA834AA961aE88b6005e507Ddb60B2c53" + }, + "TrancheVestingMerkleDistributorFactory": { + "address": "0xc6B19D47a336d3382f57EdD768233076a27C28c2" + }, + "GenericERC20": { + "address": "0xD6daA1F7876BAF991C4655956116472B835317dd" + } + }, + "zkSyncTestnet": { + "ContinuousVestingMerkleDistributor": { + "address": "0xd1515bB65096d67895287bC180521007bc71900F" + }, + "ContinuousVestingMerkleDistributorFactory": { + "address": "0xf38756A27593CEd6b4bF3807b44a88908b3d8ccC" + }, + "FlatPriceSaleFactory_v_2_1": { + "address": "0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083" + }, + "FlatPriceSale_v_2_1": { + "address": "0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F" + }, + "TrancheVestingMerkleDistributor": { + "address": "0x5CD85a2C91ba4420E0247c3bB7CEe1299EA150c8" + }, + "TrancheVestingMerkleDistributorFactory": { + "address": "0x5B8a021F311BDAbE7DcA7bEf84DBF3D1FFa80846" + }, + "GenericERC20": { + "address": "0xCa785532ad49f974E41171fA4Ea8E4B5381aE0bD" + } + }, "binance": { "GenericERC20": { "address": "0xf8C640003A2CA24272eB05a5493e84c62Efc3d9a" diff --git a/packages/subgraph/package.json b/packages/subgraph/package.json index e1525ad9..5b55fc2b 100644 --- a/packages/subgraph/package.json +++ b/packages/subgraph/package.json @@ -16,6 +16,8 @@ "prepare:sepolia": "NETWORK=sepolia yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:base": "NETWORK=base yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:base-sepolia": "NETWORK=baseSepolia yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", + "prepare:zkSync": "NETWORK=zkSync yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", + "prepare:zkSyncTestnet": "NETWORK=zkSyncTestnet yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:localhost": "NETWORK=localhost yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:mainnet": "NETWORK=mainnet yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:matic": "NETWORK=matic yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", @@ -57,6 +59,8 @@ "deploy:base-sepolia": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-base-sepolia", "deploy:base-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-base-next", "deploy:base": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-base", + "deploy:zkSync": "graph deploy zkSync --version-label v0.0.1-new-version --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key GET_THIS_FROM_ALCHEMY --ipfs https://ipfs.satsuma.xyz", + "deploy:zkSyncTestnet": "graph deploy zkSyncTestnet --version-label v0.0.1-new-version --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key GET_THIS_FROM_ALCHEMY --ipfs https://ipfs.satsuma.xyz", "deploy:goerli-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-goerli-next", "deploy:goerli-satsuma": "graph deploy sales-goerli --version-label ${VERSION_LABEL} --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key ${SATSUMA_DEPLOY_KEY} --ipfs https://ipfs.satsuma.xyz", "deploy:localhost": "graph deploy --node http://localhost:8020/ --ipfs http://localhost:5001 tokensoft/sales-localhost", From e69c674f357bdf2f65651b95e541583e9aa329f4 Mon Sep 17 00:00:00 2001 From: Jack Dishman Date: Thu, 6 Jun 2024 16:00:50 -0400 Subject: [PATCH 3/8] docs: add contracts to README.md --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index b9279d6b..bbf19bd1 100644 --- a/README.md +++ b/README.md @@ -237,6 +237,27 @@ if (registeredAddress.interfaceIds.includes(knownInterfaces.IDistributor)) { ## Deployed Smart Contracts + +### zkSync Mainnet + +- [0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F](https://explorer.zksync.io/address/0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F) +- [0xfb563bAAaB145Bd393b36a2a76E92A1712F41f8C](https://explorer.zksync.io/address/0xfb563bAAaB145Bd393b36a2a76E92A1712F41f8C) +- [0x870C1744173498905c9a1Da624CcC9852513f90D](https://explorer.zksync.io/address/0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083) +- [0xB63DC17fA834AA961aE88b6005e507Ddb60B2c53](https://explorer.zksync.io/address/0xB63DC17fA834AA961aE88b6005e507Ddb60B2c53) +- [0xc6B19D47a336d3382f57EdD768233076a27C28c2](https://explorer.zksync.io/address/0xc6B19D47a336d3382f57EdD768233076a27C28c2) +- [0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083](https://explorer.zksync.io/address/0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083) + +### zkSync sepolia + +- [0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F](https://sepolia.explorer.zksync.io/address/0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F#contract) +- [0xd1515bB65096d67895287bC180521007bc71900F](https://sepolia.explorer.zksync.io/address/0xd1515bB65096d67895287bC180521007bc71900F#contract) +- [0xf38756A27593CEd6b4bF3807b44a88908b3d8ccC](https://sepolia.explorer.zksync.io/address/0xf38756A27593CEd6b4bF3807b44a88908b3d8ccC#contract) +- [0x5CD85a2C91ba4420E0247c3bB7CEe1299EA150c8](https://sepolia.explorer.zksync.io/address/0x5CD85a2C91ba4420E0247c3bB7CEe1299EA150c8#contract) +- [0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083](https://sepolia.explorer.zksync.io/address/0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083#contract) +- [0x5B8a021F311BDAbE7DcA7bEf84DBF3D1FFa80846](https://sepolia.explorer.zksync.io/address/0x5B8a021F311BDAbE7DcA7bEf84DBF3D1FFa80846#contract) + + + ### Base sepolia - [0x4aD35755F3bC7d591CBa3D0D0Eb27C2497A73d30](https://sepolia.basescan.org/address/0x4aD35755F3bC7d591CBa3D0D0Eb27C2497A73d30) From ee108aed3272b0cadab9e5c667efc97aaeb0bedc Mon Sep 17 00:00:00 2001 From: Jack Dishman Date: Fri, 7 Jun 2024 07:32:31 -0400 Subject: [PATCH 4/8] fix: use all lowercase zksync and -era --- packages/subgraph/config.json | 6 +++--- packages/subgraph/networks.json | 4 ++-- packages/subgraph/package.json | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/subgraph/config.json b/packages/subgraph/config.json index 9f89392d..b967ca1a 100644 --- a/packages/subgraph/config.json +++ b/packages/subgraph/config.json @@ -816,8 +816,8 @@ } ] }, - "zkSync": { - "SubgraphNetwork": "zkSync", + "zksync": { + "SubgraphNetwork": "zksync-era", "LowestStartBlock": 35809299, "FlatPriceSaleFactory_v_2_1": [ { @@ -845,7 +845,7 @@ ] }, "zkSyncTestnet": { - "SubgraphNetwork": "zkSync", + "SubgraphNetwork": "zksync-sepolia", "LowestStartBlock": 35809299, "FlatPriceSaleFactory_v_2_1": [ { diff --git a/packages/subgraph/networks.json b/packages/subgraph/networks.json index d8f8d4f1..9edbc334 100644 --- a/packages/subgraph/networks.json +++ b/packages/subgraph/networks.json @@ -314,7 +314,7 @@ "address": "0x99464d188Ceb88200eb09461Db8b5900D0B0F487" } }, - "zkSync": { + "zksync": { "ContinuousVestingMerkleDistributor": { "address": "0xfb563bAAaB145Bd393b36a2a76E92A1712F41f8C" }, @@ -337,7 +337,7 @@ "address": "0xD6daA1F7876BAF991C4655956116472B835317dd" } }, - "zkSyncTestnet": { + "zksyncTestnet": { "ContinuousVestingMerkleDistributor": { "address": "0xd1515bB65096d67895287bC180521007bc71900F" }, diff --git a/packages/subgraph/package.json b/packages/subgraph/package.json index 5b55fc2b..da92caae 100644 --- a/packages/subgraph/package.json +++ b/packages/subgraph/package.json @@ -16,8 +16,8 @@ "prepare:sepolia": "NETWORK=sepolia yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:base": "NETWORK=base yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:base-sepolia": "NETWORK=baseSepolia yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", - "prepare:zkSync": "NETWORK=zkSync yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", - "prepare:zkSyncTestnet": "NETWORK=zkSyncTestnet yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", + "prepare:zksync-era": "NETWORK=zksync yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", + "prepare:zksyncTestnet": "NETWORK=zksyncTestnet yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:localhost": "NETWORK=localhost yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:mainnet": "NETWORK=mainnet yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:matic": "NETWORK=matic yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", @@ -59,8 +59,8 @@ "deploy:base-sepolia": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-base-sepolia", "deploy:base-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-base-next", "deploy:base": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-base", - "deploy:zkSync": "graph deploy zkSync --version-label v0.0.1-new-version --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key GET_THIS_FROM_ALCHEMY --ipfs https://ipfs.satsuma.xyz", - "deploy:zkSyncTestnet": "graph deploy zkSyncTestnet --version-label v0.0.1-new-version --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key GET_THIS_FROM_ALCHEMY --ipfs https://ipfs.satsuma.xyz", + "deploy:zksync-era": "graph deploy zksync-era --version-label v0.0.1-new-version --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key GET_THIS_FROM_ALCHEMY --ipfs https://ipfs.satsuma.xyz", + "deploy:zksyncTestnet": "graph deploy zksyncTestnet --version-label v0.0.1-new-version --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key GET_THIS_FROM_ALCHEMY --ipfs https://ipfs.satsuma.xyz", "deploy:goerli-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-goerli-next", "deploy:goerli-satsuma": "graph deploy sales-goerli --version-label ${VERSION_LABEL} --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key ${SATSUMA_DEPLOY_KEY} --ipfs https://ipfs.satsuma.xyz", "deploy:localhost": "graph deploy --node http://localhost:8020/ --ipfs http://localhost:5001 tokensoft/sales-localhost", From 15aa327cc7bb26f6be0da456db1a572db05d1273 Mon Sep 17 00:00:00 2001 From: Jack Dishman Date: Fri, 7 Jun 2024 14:13:09 -0400 Subject: [PATCH 5/8] fix: remove require msg sender from zksync contract --- .../contracts/ts/sale/v2.1/FlatPriceSale.sol | 50 +- .../hardhat/zksync-hardhat/deploy/deploy.ts | 8 +- .../ContinuousVestingMerkleDistributor.json | 1584 ---------------- ...inuousVestingMerkleDistributorFactory.json | 203 --- .../TrancheVestingMerkleDistributor.json | 1621 ----------------- ...rancheVestingMerkleDistributorFactory.json | 207 --- .../FlatPriceSale_v_2_1.json | 6 +- .../FlatPriceSaleFactory_v_2_1.json | 257 +++ .../FlatPriceSaleFactory_v_2_1.json | 267 +++ .../TrancheVestingMerkleDistributor.json | 4 +- ...rancheVestingMerkleDistributorFactory.json | 20 - 11 files changed, 556 insertions(+), 3671 deletions(-) delete mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json delete mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json delete mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json delete mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol/FlatPriceSaleFactory_v_2_1.json create mode 100644 packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory_v_2_1.sol/FlatPriceSaleFactory_v_2_1.json diff --git a/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSale.sol b/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSale.sol index 84e2f011..3b94d9de 100644 --- a/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSale.sol +++ b/packages/hardhat/zksync-hardhat/contracts/ts/sale/v2.1/FlatPriceSale.sol @@ -213,35 +213,31 @@ contract FlatPriceSale_v_2_1 is Sale, PullPaymentUpgradeable { - otherwise: this is a private sale, users must submit a merkle proof that their address is included in the merkle root */ modifier canAccessSale(bytes calldata data, bytes32[] calldata proof) { - // make sure the buyer is an EOA - // TODO: Review this check for meta-transactions - require((_msgSender() == tx.origin), "Must buy with an EOA"); - - // If the merkle root is non-zero this is a private sale and requires a valid proof - if (config.merkleRoot == bytes32(0)) { - // this is a public sale - // IMPORTANT: data is only validated if the merkle root is checked! Public sales do not check any merkle roots! - require(data.length == 0, "data not permitted on public sale"); - } else { - // this is a private sale - require( - this.isValidMerkleProof(config.merkleRoot, _msgSender(), data, proof) == true, - "bad merkle proof for sale" - ); - } + // If the merkle root is non-zero this is a private sale and requires a valid proof + if (config.merkleRoot == bytes32(0)) { + // this is a public sale + // IMPORTANT: data is only validated if the merkle root is checked! Public sales do not check any merkle roots! + require(data.length == 0, "data not permitted on public sale"); + } else { + // this is a private sale + require( + this.isValidMerkleProof(config.merkleRoot, _msgSender(), data, proof) == true, + "bad merkle proof for sale" + ); + } - // Require the sale to be open - require(block.timestamp > config.startTime, "sale has not started yet"); - require(block.timestamp < config.endTime, "sale has ended"); - require(metrics.purchaseTotal < config.saleMaximum, "sale buy limit reached"); + // Require the sale to be open + require(block.timestamp > config.startTime, "sale has not started yet"); + require(block.timestamp < config.endTime, "sale has ended"); + require(metrics.purchaseTotal < config.saleMaximum, "sale buy limit reached"); - // Reduce congestion by randomly assigning each user a delay time in a virtual queue based on comparing their address and a random value - // if config.maxQueueTime == 0 the delay is 0 - require( - block.timestamp - config.startTime > getFairQueueTime(_msgSender()), - "not your turn yet" - ); - _; + // Reduce congestion by randomly assigning each user a delay time in a virtual queue based on comparing their address and a random value + // if config.maxQueueTime == 0 the delay is 0 + require( + block.timestamp - config.startTime > getFairQueueTime(_msgSender()), + "not your turn yet" + ); + _; } /** diff --git a/packages/hardhat/zksync-hardhat/deploy/deploy.ts b/packages/hardhat/zksync-hardhat/deploy/deploy.ts index 7c03df2f..b4230f13 100644 --- a/packages/hardhat/zksync-hardhat/deploy/deploy.ts +++ b/packages/hardhat/zksync-hardhat/deploy/deploy.ts @@ -5,15 +5,15 @@ import { deployContract } from "./utils"; // as well as verify it on Block Explorer if possible for the network export default async function () { - const {contract, address, constructorArgs, fullContractSource} = await deployContract("TrancheVestingMerkleDistributor", []); - await deployContract("TrancheVestingMerkleDistributorFactory", [contract.target]) + // const {contract, address, constructorArgs, fullContractSource} = await deployContract("TrancheVestingMerkleDistributor", []); + // await deployContract("TrancheVestingMerkleDistributorFactory", [contract.target]) // const {contract, address, constructorArgs, fullContractSource} = await deployContract("ContinuousVestingMerkleDistributor", []); // await deployContract("ContinuousVestingMerkleDistributorFactory", [contract.target]) // const {contract, address, constructorArgs, fullContractSource} = await deployContract("GenericERC20", ["jack", "jd", 18, "1000000000000000000000000000"]); - // const {contract, address, constructorArgs, fullContractSource} = await deployContract("FlatPriceSale_v_2_1", [0, "0x0000000000000000000000000000000000000000"]); - // await deployContract("FlatPriceSaleFactory_v_2_1", [contract.target]) + const {contract, address, constructorArgs, fullContractSource} = await deployContract("FlatPriceSale_v_2_1", [0, "0x0000000000000000000000000000000000000000"]); + const factoryContract = await deployContract("contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol:FlatPriceSaleFactory_v_2_1", [contract.target]) } diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json deleted file mode 100644 index f4fb4a5f..00000000 --- a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol/ContinuousVestingMerkleDistributor.json +++ /dev/null @@ -1,1584 +0,0 @@ -{ - "sourceName": "contracts/ts/claim/factory/ContinuousVestingMerkleDistributor.sol", - "contractName": "ContinuousVestingMerkleDistributor", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "InvalidShortString", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "str", - "type": "string" - } - ], - "name": "StringTooLong", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } - ], - "name": "Adjust", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Claim", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fromDelegate", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "toDelegate", - "type": "address" - } - ], - "name": "DelegateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "delegate", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "previousBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newBalance", - "type": "uint256" - } - ], - "name": "DelegateVotesChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "EIP712DomainChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "total", - "type": "uint256" - } - ], - "name": "InitializeDistributionRecord", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IERC20", - "name": "token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "total", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "uri", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fractionDenominator", - "type": "uint256" - } - ], - "name": "InitializeDistributor", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "start", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "cliff", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "end", - "type": "uint256" - } - ], - "name": "SetContinuousVesting", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint160", - "name": "maxDelayTime", - "type": "uint160" - } - ], - "name": "SetDelay", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "merkleRoot", - "type": "bytes32" - } - ], - "name": "SetMerkleRoot", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "recipient", - "type": "address" - } - ], - "name": "SetSweepRecipient", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IERC20", - "name": "token", - "type": "address" - } - ], - "name": "SetToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "total", - "type": "uint256" - } - ], - "name": "SetTotal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "string", - "name": "uri", - "type": "string" - } - ], - "name": "SetUri", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "voteFactor", - "type": "uint256" - } - ], - "name": "SetVoteFactor", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "SweepNative", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "SweepToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "CLOCK_MODE", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "internalType": "int256", - "name": "amount", - "type": "int256" - } - ], - "name": "adjust", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint32", - "name": "pos", - "type": "uint32" - } - ], - "name": "checkpoints", - "outputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "fromBlock", - "type": "uint32" - }, - { - "internalType": "uint224", - "name": "votes", - "type": "uint224" - } - ], - "internalType": "struct ERC20Votes.Checkpoint", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "internalType": "uint256", - "name": "totalAmount", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "merkleProof", - "type": "bytes32[]" - } - ], - "name": "claim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "claimed", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "clock", - "outputs": [ - { - "internalType": "uint48", - "name": "", - "type": "uint48" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "delegatee", - "type": "address" - } - ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "delegatee", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "delegateBySig", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "delegates", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "distancePerSecond", - "outputs": [ - { - "internalType": "uint160", - "name": "", - "type": "uint160" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "eip712Domain", - "outputs": [ - { - "internalType": "bytes1", - "name": "fields", - "type": "bytes1" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifyingContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256[]", - "name": "extensions", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - } - ], - "name": "getClaimableAmount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - } - ], - "name": "getDistributionRecord", - "outputs": [ - { - "components": [ - { - "internalType": "bool", - "name": "initialized", - "type": "bool" - }, - { - "internalType": "uint120", - "name": "total", - "type": "uint120" - }, - { - "internalType": "uint120", - "name": "claimed", - "type": "uint120" - } - ], - "internalType": "struct DistributionRecord", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getFairDelayTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFractionDenominator", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMerkleRoot", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "timepoint", - "type": "uint256" - } - ], - "name": "getPastTotalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timepoint", - "type": "uint256" - } - ], - "name": "getPastVotes", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSweepRecipient", - "outputs": [ - { - "internalType": "address payable", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalVotes", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "internalType": "uint256", - "name": "time", - "type": "uint256" - } - ], - "name": "getVestedFraction", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVestingConfig", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getVoteFactor", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getVotes", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_total", - "type": "uint256" - }, - { - "internalType": "string", - "name": "_uri", - "type": "string" - }, - { - "internalType": "uint256", - "name": "_start", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_cliff", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_end", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "_merkleRoot", - "type": "bytes32" - }, - { - "internalType": "uint160", - "name": "_maxDelayTime", - "type": "uint160" - }, - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "merkleProof", - "type": "bytes32[]" - } - ], - "name": "initializeDistributionRecord", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "maxDelayTime", - "outputs": [ - { - "internalType": "uint160", - "name": "", - "type": "uint160" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "numCheckpoints", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "randomValue", - "outputs": [ - { - "internalType": "uint160", - "name": "", - "type": "uint160" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_merkleRoot", - "type": "bytes32" - } - ], - "name": "setMerkleRoot", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address payable", - "name": "_recipient", - "type": "address" - } - ], - "name": "setSweepRecipient", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - } - ], - "name": "setToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_total", - "type": "uint256" - } - ], - "name": "setTotal", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_uri", - "type": "string" - } - ], - "name": "setUri", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_start", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_cliff", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_end", - "type": "uint256" - } - ], - "name": "setVestingConfig", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_voteFactor", - "type": "uint256" - } - ], - "name": "setVoteFactor", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "sweepNative", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "sweepNative", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "token", - "type": "address" - } - ], - "name": "sweepToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "sweepToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token", - "outputs": [ - { - "internalType": "contract IERC20", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "total", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x0004000000000002000e00000000000200000000030100190000006003300270000007960030019d0000079609300197000300000091035500020000000103550000000102200190000000230000c13d0000008005000039000000400050043f000000040290008c000015000000413d000000000201043b000000e002200270000007b30420009c000000680000213d000007e10420009c000000790000a13d000007e20420009c000000960000213d000007ee0420009c000001bf0000213d000007f40420009c0000044d0000213d000007f70420009c000006bd0000613d000007f80120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001c010000390000060d0000013d0000016001000039000000400010043f0000000001000416000000000101004b000015000000c13d0000001501000039000001600010043f0000079702000041000001800020043f000001a00010043f000001c00020043f0000000303000039000001e00030043f0000079801000041000002000010043f0000026001000039000000400010043f0000000101000039000b00000001001d000002200010043f0000079901000041000002400010043f000000000600041100000010016002100000079a01100197000000000200041a0000079b04200197000000000141019f000000000010041b00000796050000410000000001000414000007960410009c0000000001058019000000c0011002100000079c011001c700000010022002700000079d052001970000800d020000390000079e04000041000a00000006001d1e531e490000040f0000000101200190000015000000613d0000000b03000029000000000103041a0000079f011001970000000a02000029000000000121019f000000000013041b000002600020043f0000000001000414000007960210009c0000079601008041000000c001100210000007a0011001c70000800d02000039000007a1040000411e531e490000040f0000000101200190000015000000613d000001a00500043d000007a20150009c000000ff0000413d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000007b40420009c000000880000a13d000007b50420009c000000d80000213d000007c10420009c000001f00000213d000007c70420009c000004610000213d000007ca0120009c000006d30000613d000007cb0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000000101000039000008790000013d000007f90420009c000001100000a13d000007fa0420009c000001a00000213d000008000420009c000002930000213d000008030420009c000005290000613d000008040120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001701000039000008790000013d000007cc0420009c000001190000a13d000007cd0420009c000001ab0000213d000007d30420009c000002eb0000213d000007d60420009c000005620000613d000007d70220009c000015000000c13d0000000002000416000000440390008c000015000000413d000005190000013d000007e30420009c000002050000213d000007e90420009c000004900000213d000007ec0420009c000006d80000613d000007ed0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000002401100370000000000301043b000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d000a00000003001d0000000b0100002900000000001004350000000f01000039000900000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000008600320009c000000620000213d000000000101043b0000006003200039000000400030043f000000000301041a0000008001300270000008160110019700000040042000390000000000140435000000ff043001900000000001000019000000010100c0390000000001120436000000080230027000000816022001970000000000210435000000000204004b00000d130000c13d000000400100043d00000044021000390000086a0300004100000dc00000013d000007b60420009c000002110000213d000007bc0420009c000004a00000213d000007bf0420009c000006ee0000613d000007c00220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b00000000040200190000079d0220009c000015000000213d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000002401100370000000000301043b000a00000003001d0000000101000039000000000101041a0000079d021001970000000001040019000b00000001001d1e5318cf0000040f000000400100043d0000000a0200002900000000002104350000079602000041000000000300041400000a1d0000013d0000000504000039000000000104041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000000112004b0000021c0000613d0000087a0100004100000000001004350000002201000039000000040010043f0000087b0100004100001e5500010430000008050420009c000002540000a13d000008060420009c000003ea0000213d000008090420009c0000056f0000613d0000080a0120009c000005050000613d000015000000013d000007d80420009c0000025f0000a13d000007d90420009c000004080000213d000007dc0420009c0000058a0000613d000007dd0220009c000015000000c13d0000000002000416000001240490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000004402100370000000000402043b000007a40240009c000015000000213d0000002302400039000000000292004b000015000000813d0000000405400039000000000251034f000000000202043b000007a40620009c000000620000213d0000001f06200039000000200800008a000000000686016f0000003f06600039000000000686016f0000083c0760009c000000620000213d000a00000008001d0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000394004b000015000000213d0000002003500039000000000331034f0000001f0420018f0000000505200272000001540000613d00000000060000190000000507600210000000000873034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000014c0000413d000000000604004b000001630000613d0000000505500210000000000353034f0000000304400210000000a005500039000000000605043300000000064601cf000000000646022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000363019f0000000000350435000000a0022000390000000000020435000000e402100370000000000202043b000900000002001d0000079d0220009c000015000000213d0000010401100370000000000101043b000800000001001d0000079d0110009c000015000000213d000000000100041a000700000001001d0005ff000010019400000f690000c13d0000000701000029000000ff0110019000000000020000190000000102006039000c00000002001d00000000020004150000000c0220008a0006000500200218000000000101004b00000f6d0000c13d000001000100008a000000070110017f00000001011001bf000008400110019700000100011001bf000200000000001d000000000010041b00000002020003670000002403200370000000000303043b000700000003001d0000006403200370000000000303043b000400000003001d0000008403200370000000000303043b000500000003001d000000a403200370000000000303043b000300000003001d000000c402200370000000000202043b000600000002001d0000ff0001100190000010d00000c13d000000400100043d00000064021000390000085003000041000000000032043500000044021000390000085103000041000000000032043500000024021000390000002b03000039000008690000013d000007fb0420009c000002fd0000213d000007fe0120009c000005f70000613d000007ff0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d1e5317f00000040f000008410000013d000007ce0420009c000003ae0000213d000007d10420009c000005fe0000613d000007d20120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001b01000039000000000101041a0000001a02000039000000000202041a0000001903000039000000000303041a000000800030043f000000a00020043f000000c00010043f000008320100004100001e540001042e000007ef0420009c000004cc0000213d000007f20420009c000007210000613d000007f30120009c000015000000c13d0000000001000416000000000101004b000015000000c13d00000000010900191e53152b0000040f00000000060100190000000007020019000a00000007001d0000000008030019000900000008001d000800000004001d000700000005001d000000400100043d000b00000001001d0000002001100039000600000001001d0000000002060019000000000307001900000000040800191e531c520000040f0000000b030000290000000002310049000000200120008a000000000013043500000000010300191e53156a0000040f0000000b01000029000000000201043300000006010000291e531e140000040f000b00000001001d0000000003000031000000080100002900000007020000291e531c5a0000040f00000000020100190000000b010000291e531db20000040f0000000a0100002900000009020000291e531c820000040f000000000100001900001e540001042e000007c20420009c000004e00000213d000007c50420009c0000072e0000613d000007c60220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d1e53157d0000040f0000000b010000291e531df90000040f000000000100001900001e540001042e000007e40420009c000004e90000213d000007e70120009c000007460000613d000007e80120009c000015000000c13d0000000001000416000000000101004b000015000000c13d000000000100041a00000010011002700000087a0000013d000007b70420009c000004fa0000213d000007ba0420009c0000077b0000613d000007bb0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000001601000039000008790000013d000000200130008c0000023e0000413d000800000003001d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d00000009050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000008010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000a040000290000023e0000813d000000000002041b0000000102200039000000000312004b0000023a0000413d0000001f0150008c0000050a0000a13d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000200200008a00000009060000290000000003260170000000000101043b000008be0000c13d0000002002000039000008c80000013d0000080b0420009c0000087e0000613d0000080c0420009c000005160000613d0000080d0120009c000015000000c13d0000000001000416000000000101004b000015000000c13d00000014010000390000060d0000013d000007de0420009c0000089e0000613d000007df0420009c000005050000613d000007e00220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000201043b000000000302041a000000000103004b0000000001000019000008410000613d000b00000003001d000000000020043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b020000290000000001120019000000010110008a000000000101041a0000002001100270000008410000013d000008010420009c000006090000613d000008020220009c000015000000c13d0000000002000416000000840490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000002404100370000000000404043b000700000004001d0000079d0440009c000015000000213d0000004404100370000000000404043b000600000004001d0000006404100370000000000404043b000007a40540009c000015000000213d0000002305400039000000000595004b000015000000813d0000000405400039000000000151034f000000000101043b000b00000001001d000007a40110009c000015000000213d00000024014000390000000b030000290000000503300210000500000001001d000a00000003001d000800000013001d000000080190006b000015000000213d000000a00020043f00000007010000290000006001100210000000c00010043f0000000601000029000000d40010043f0000005401000039000000800010043f0000010001000039000000400010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000870011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000a020000290000003f022000390000087102200197000000400300043d0000000002230019000a00000003001d000000000332004b00000000030000190000000103004039000007a40420009c000000620000213d0000000103300190000000620000c13d000000400020043f0000000a020000290000000b040000290000000002420436000900000002001d0000000802000029000000000220007c000015000000213d0000000b0200006b00000f8f0000c13d0000001c02000039000000000202041a000500000002001d00000fbf0000013d000007d40420009c000006110000613d000007d50220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000302043b0000079d0230009c000015000000213d0000002401100370000000000201043b00000000010300191e531c270000040f000008410000013d000007fc0420009c000006310000613d000007fd0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000002401100370000000000101043b000800000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000086b0210009c000008600000813d000000080110006b000009bb0000813d0000000b0100002900000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000700000001001d000000000101041a000a00000001001d000000060110008c00000def0000413d0000000a050000290000008001500270000008560250009c0000000001054019000008560250009c0000008002000039000000000200401900000040032001bf000007a20410009c00000000020380190000004003100270000007a20410009c000000000103801900000020032001bf000008570410009c00000000020380190000002003100270000008570410009c000000000103801900000010032001bf000008580410009c00000000020380190000001003100270000008580410009c0000000001038019000001000310008c00000008022080390000000801108270000000100310008c00000004022080390000000401108270000000040310008c00000002022080390000000201108270000000010110008c00000001022020390000000101200270000000000215022f000000010110020f0000000001210019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001011002700000000a321000f90000000001120019000000020210008c0000099c0000413d00000001041002700000000a214000f9000000000214004b0000000004018019000b00000004001d0000000a0140006b0000065f0000413d0000000701000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d0000000b030000290000000a02300069000000000101043b0000000001210019000000000101041a0000079601100197000000080110006c0000135a0000a13d0000000003000019000a00000002001d0000000a0130006c00000df20000413d0000000a02000029000a00000002001d000000000102004b0000000001000019000008410000613d0000000701000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000a020000290000028e0000013d000007cf0420009c000006650000613d000007d00220009c000015000000c13d0000000002000416000000c40390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000004402100370000000000202043b000a00000002001d0000002402100370000000000202043b000900000002001d0000006401100370000000000101043b000800000001001d000000ff0110008c000015000000213d000700000005001d0000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000400200043d000000000101043b0000000a03000029000000000131004b00000b8f0000a13d00000044012000390000082f03000041000000000031043500000024012000390000001d030000390000000000310435000007ad0100004100000000001204350000000401200039000000200300003900000000003104350000079601000041000007960320009c0000000002018019000000400120021000000823011001c700001e5500010430000008070420009c000006890000613d000008080220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000000401100370000000000101043b0000001102000039000000000012041b000000800010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000829011001c70000800d020000390000000103000039000008800400004100000c8f0000013d000007da0420009c000006a60000613d000007db0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d000000000200041100000000002004350000000302000039000000200020043f0000002401100370000000000101043b000a00000001001d00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b020000290000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000501041a000000400100043d000007ad02000041000000000021043500000004021000390000002003000039000000000032043500000044021000390000079603000041000007960410009c0000000003014019000000240410003900000040033002100000000a0550006c00000c010000813d0000002505000039000000000054043500000837040000410000000000420435000000640110003900000838020000410000000000210435000007b0013001c700001e5500010430000007f50420009c000007980000613d000007f60220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000b01000039000000200010043f000000400200003900000000010000191e531e140000040f000008790000013d000007c80420009c000007bf0000613d000007c90220009c000015000000c13d0000000002000416000000e40390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b000b00000002001d0000079d0220009c000015000000213d0000002402100370000000000202043b000a00000002001d0000079d0220009c000015000000213d0000006402100370000000000202043b000900000002001d0000008401100370000000000101043b000800000001001d000000ff0110008c000015000000213d000700000005001d0000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000090110006c00000d300000a13d000000400100043d000000440210003900000828030000410000055e0000013d000007ea0420009c000007d90000613d000007eb0220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000901000039000004db0000013d000007bd0420009c000007fc0000613d000007be0220009c000015000000c13d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000079d0320009c000015000000213d0000002401100370000000000101043b000b00000001001d000007960110009c000015000000213d000000c001000039000000400010043f000000800000043f000000a00000043f00000000002004350000000c01000039000000200010043f000000400200003900000000010000191e531e140000040f0000000b020000291e5315be0000040f1e5315d90000040f00000000210104340000079601100197000000400300043d00000000011304360000000002020433000008120220019700000000002104350000079601000041000007960230009c0000000003018019000000400130021000000813011001c700001e540001042e000007f00420009c0000081c0000613d000007f10220009c000015000000c13d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000201000039000000200010043f000000400200003900000000010000191e531e140000040f0000060d0000013d000007c30420009c000008370000613d000007c40120009c000015000000c13d0000000001000416000000000101004b000015000000c13d00000012010000390000060d0000013d000007e50420009c000008490000613d000007e60120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000800b01000039000000040300003900000000040004150000000e0440008a000000050440021000000844020000411e531e2a0000040f000b00000001001d1e53189f0000040f0000082e0000013d000007b80120009c000008750000613d000007b90120009c000015000000c13d0000000001000416000000000101004b000015000000c13d0000000301000039000000800010043f0000080e0100004100001e540001042e0000000001000416000000000101004b000015000000c13d00000004010000390000060d0000013d000000000105004b00000000010000190000050e0000613d000001c00100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f000008d60000013d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0110009c000015000000213d000007ad01000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f0000082501000041000000c40010043f000008830100004100001e55000104300000000002000416000000640390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000079d0320009c000015000000213d0000002401100370000000000101043b0000079d0110009c000015000000213d00000000002004350000000301000039000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b00000000020004110000079d022001970000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000101041a000000010200008a000000000221004b00000a6e0000613d00000044020000390000000202200367000000000202043b000000000121004b00000a6e0000813d000000400100043d00000044021000390000087f03000041000000000032043500000024021000390000001d0300003900000c990000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d1e531da60000040f000000800010043f0000080e0100004100001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000501043b0000079d0150009c000015000000213d000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d000000000105004b000009d10000c13d000007ad01000041000000800010043f0000002001000039000000840010043f0000001301000039000000a40010043f0000088501000041000000c40010043f000008830100004100001e55000104300000000002000416000000240490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000502043b000007a40250009c000015000000213d0000002302500039000000000292004b000015000000813d0000000406500039000000000261034f000000000202043b000007a40420009c000000620000213d0000001f07200039000000200400008a000000000747016f0000003f07700039000000000747016f0000083c0870009c000000620000213d0000008007700039000000400070043f000000800020043f00000000052500190000002405500039000000000395004b000015000000213d0000002003600039000000000131034f0000001f0320018f0000000505200272000005b70000613d00000000060000190000000507600210000000000871034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b000005af0000413d000000000603004b000005c60000613d0000000505500210000000000151034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f0000000000150435000000a0012000390000000000010435000000000100041a00000010011002700000079d011001970000000002000411000000000121004b00000dbd0000c13d000000800200043d000007a40120009c000000620000213d0000001301000039000000000501041a000000010350019000000001065002700000007f0360018f000000000306c0190000001f0630008c00000000060000190000000106002039000000000565013f00000001055001900000010a0000c13d000000200530008c000005ef0000413d0000001f05200039000000050550027000000814065000410000081405000041000000200720008c000000000506801900000000001004350000001f0330003900000005033002700000081403300041000000000635004b000005ef0000813d000000000005041b0000000105500039000000000635004b000005eb0000413d0000001f0320008c00000fcd0000a13d00000000001004350000000004420170000010010000c13d000000a00500003900000814030000410000100e0000013d0000000001000416000000000101004b000015000000c13d0000001201000039000000800010043f0000080e0100004100001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0110009c000015000000213d00000018010000390000060d0000013d0000000001000416000000000101004b000015000000c13d0000001101000039000000000101041a000000800010043f0000080e0100004100001e540001042e0000000001000416000000000101004b000015000000c13d000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d000008330100004100000000001004390000000001000410000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c70000800a020000391e531e4e0000040f0000000102200190000014930000613d000000000901043b0000000102000039000000000302041a00000000010004140000079d04300197000000040340008c000009bf0000c13d000000010100003100000c7c0000013d0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d000000000100041100000000001004350000000301000039000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b020000290000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000101041a000000010200008a000000000121013f00000024020000390000000202200367000000000202043b000000000112004b00000a6e0000a13d0000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e55000104300000000002000416000000640390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000004402100370000000000202043b0000002403100370000000000303043b0000000401100370000000000101043b0000001904000039000000000014041b0000001a04000039000000000034041b0000001b04000039000000000024041b000000800010043f000000a00030043f000000c00020043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000830011001c70000800d020000390000000103000039000008310400004100000c8f0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000007f30000c13d0000088101000041000000800010043f0000000001000410000000840010043f00000000010004140000000b02000029000000040320008c000009e00000c13d0000000103000031000000200130008c0000000004030019000000200400803900000a0b0000013d0000000001000416000000000101004b000015000000c13d000000e001000039000000400010043f0000002401000039000000800010043f0000083901000041000000a00010043f0000083a01000041000000c00010043f0000002001000039000000e00010043f000000800100003900000100020000391e5315020000040f000000e00110008a0000079602000041000007960310009c000000000102801900000060011002100000083b011001c700001e540001042e0000000002000416000000240490008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000302043b000000000200041a00000010022002700000079d022001970000000004000411000000000242004b000007f30000c13d0000000102000039000000000402041a00000000050004140000079d04400197000000040640008c000009450000c13d000000000191034f000000010800003100000a370000013d0000000001000416000000000101004b000015000000c13d0000001501000039000008790000013d0000000001000416000000000101004b000015000000c13d000000000100041a00000010021002700000079d022001970000000005000411000000000252004b000007f30000c13d0000079b01100197000000000010041b00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000079c011001c70000800d0200003900000003030000390000079e04000041000000000600001900000c8f0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d000000e002000039000b00000002001d000000400020043f000000800000043f000000a00000043f000000c00000043f00000000001004350000000f01000039000000200010043f000000400200003900000000010000191e531e140000040f000a00000001001d0000000b010000291e5315540000040f0000000a01000029000000000101041a000000ff021001900000000002000019000000010200c039000000e00020043f00000008031002700000081603300197000001000030043f00000080011002700000081601100197000001200010043f000000400100043d0000000002210436000001000300043d00000816033001970000000000320435000001200200043d0000081602200197000000400310003900000000002304350000079602000041000007960310009c0000000001028019000000400110021000000817011001c700001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000201043b0000079d0120009c000015000000213d00000000010004111e5315ec0000040f000000000100001900001e540001042e0000000002000416000000440390008c000015000000413d000000000202004b000015000000c13d0000000402100370000000000202043b0000079d0320009c000015000000213d0000002401100370000000000101043b000b00000001001d0000079d0110009c000015000000213d00000000002004350000000301000039000000200010043f000000400200003900000000010000191e531e140000040f0000000b020000291e5315ad0000040f000000000101041a000008410000013d0000000001000416000000000101004b000015000000c13d0000081d0100004100000000001004390000000001000412000b00000001001d0000000400100443000000a001000039000000240010044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000400700043d000000000101043b000000ff0210008c0000092a0000c13d0000000704000039000000000304041a000000010530019000000001023002700000007f0120018f000000000102c0190000001f0210008c00000000020000190000000102002039000000000223013f00000001022001900000010a0000c13d0000000002170436000000000505004b00000c070000613d0000000000400435000000000301004b000000000300001900000c0d0000613d000007a50400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000513004b000007730000413d00000c0d0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d000000000201004b00000a2a0000c13d000007ad01000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000080f01000041000000c40010043f0000081001000041000000e40010043f000008110100004100001e55000104300000000001000416000000000101004b000015000000c13d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000400300043d000000000101043b0000086b0110009c000009350000413d00000064013000390000086d02000041000000000021043500000044013000390000086e020000410000000000210435000000240130003900000026020000390000000000210435000007ad0100004100000000001304350000000401300039000000200200003900000000002104350000079601000041000007960230009c00000000030180190000004001300210000007b0011001c700001e55000104300000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000000401100370000000000101043b0000001802000039000000000012041b000000800010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000829011001c70000800d0200003900000001030000390000082a0400004100000c8f0000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d000000000200041a00000010022002700000079d022001970000000003000411000000000232004b000007f30000c13d0000000401100370000000000101043b0000001c02000039000000000012041b000000800010043f00000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000829011001c70000800d020000390000000103000039000008490400004100000c8f0000013d000007ad01000041000000800010043f0000002001000039000000840010043f000000a40010043f0000085201000041000000c40010043f000008830100004100001e55000104300000000001000416000000000101004b000015000000c13d0000001303000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000010a0000c13d000000800010043f000000000404004b000009440000613d0000000000300435000000000201004b0000000002000019000009a80000613d00000814030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008140000413d000009a80000013d0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d00000000001004350000000c01000039000000200010043f000000400200003900000000010000191e531e140000040f000000000101041a000b00000001001d1e5318b70000040f000000400100043d0000000b0200002900000000002104350000079602000041000007960310009c0000000001028019000000400110021000000818011001c700001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b0000079d0210009c000015000000213d1e531cfe0000040f000000400200043d00000000001204350000079601000041000007960320009c0000000002018019000000400120021000000818011001c700001e540001042e0000000002000416000000240390008c000015000000413d000000000202004b000015000000c13d0000000401100370000000000101043b000b00000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000008550210009c0000094e0000a13d000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300000000001000416000000000101004b000015000000c13d0000001001000039000000000101041a0000079d01100197000000800010043f0000080e0100004100001e540001042e0000000001000416000000000101004b000015000000c13d0000000503000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000010a0000c13d000000800010043f000000000404004b000009a20000613d0000000000300435000000000201004b0000000002000019000009a80000613d00000886030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008960000413d000009a80000013d0000000001000416000000000101004b000015000000c13d0000000603000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000010a0000c13d000000800010043f000000000404004b000009a20000613d0000000000300435000000000201004b0000000002000019000009a80000613d00000854030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008b60000413d000009a80000013d00000020020000390000000004000019000001a0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000008c00000413d000000000363004b000008d30000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001a0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000a04000029000000000014041b000001e00500043d000007a40150009c000000620000213d0000000604000039000000000104041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f00000001011001900000010a0000c13d000000200130008c000009080000413d000800000003001d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d00000009050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000008010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000a04000029000009080000813d000000000002041b0000000102200039000000000312004b000009040000413d0000001f0150008c0000091e0000a13d000900000005001d000a00000004001d000000000040043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000200200008a00000009060000290000000003260170000000000101043b00000a750000c13d000000200200003900000a7f0000013d000000000105004b0000000001000019000009220000613d000002000100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f00000a8d0000013d000000ff0210018f000000200320008c000009c80000413d0000085c0100004100000000001704350000079601000041000007960270009c000000000701801900000040017002100000085d011001c700001e55000104300000000001030019000a00000003001d1e53155f0000040f0000000a0300002900000020013000390000086c0200004100000000002104350000001d0100003900000000001304350000000002030019000000400100043d000b00000001001d1e5315150000040f0000000b04000029000009b10000013d000009a20000013d0000079601000041000007960250009c0000000005018019000000c001500210000000000203004b000b00000003001d00000a2d0000c13d000000000204001900000a300000013d0000000b07000029000000000117004b000009bb0000813d0000000d01000039000000000201041a000000060320008c00000c4c0000413d0000008003200270000008560420009c0000000003024019000008560420009c0000008004000039000000000400401900000040054001bf000007a20630009c00000000040580190000004005300270000007a20630009c000000000305801900000020054001bf000008570630009c00000000040580190000002005300270000008570630009c000000000305801900000010054001bf000008580630009c00000000040580190000001005300270000008580630009c0000000003058019000001000530008c00000008044080390000000803308270000000100530008c00000004044080390000000403308270000000040530008c00000002044080390000000203308270000000010330008c00000001044020390000000103400270000000000432022f000000010330020f0000000003430019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c0000099c0000413d000000010330027000000000543200d90000000003340019000000020430008c000011d30000813d0000087a0100004100000000001004350000001201000039000000040010043f0000087b0100004100001e5500010430000001000300008a000000000232016f000000a00020043f000000000101004b0000002002000039000000000200601900000020022000390000008001000039000b00000001001d1e53156a0000040f000000400100043d000a00000001001d0000000b020000291e5315150000040f0000000a0400002900000000014100490000079602000041000007960310009c0000000001028019000007960340009c000000000402801900000040024002100000006001100210000000000121019f00001e540001042e000000400100043d00000044021000390000086f0300004100000a710000013d0000079602000041000007960310009c0000000001028019000000c001100210000000000209004b000b00000009001d00000c720000c13d000000000204001900000c760000013d0000085b0370009c000000620000213d0000004003700039000000400030043f00000020037000390000000000130435000a00000007001d000000000027043500000c1a0000013d0000001001000039000000000201041a0000079f02200197000000000252019f000000000021041b00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000079c011001c70000800d020000390000000203000039000008840400004100000c8f0000013d0000079604000041000007960310009c0000000001048019000000c00110021000000882011001c71e531e4e0000040f000000000301001900000060033002700000079603300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000009f80000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000009f00000413d000000000705004b00000a070000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000cd40000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000015000000413d0000000101000039000000000101041a000000800300043d000a00000003001d0000079d021001970000000b010000291e5318cf0000040f000000400100043d0000000a02000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d02000039000000020300003900000815040000410000000b0500002900000c8f0000013d1e5315950000040f000000000100001900001e540001042e0000079c011001c7000080090200003900000000050000191e531e490000040f0000000b03000029000300000001035500000000040100190000006004400270000107960040019d0000079608400197000000000408004b00000a400000c13d000000400100043d000000010220019000000c940000613d00000000003104350000079602000041000000000300041400000c840000013d000007a40480009c000000620000213d0000001f04800039000000200500008a000000000454016f0000003f04400039000000000454016f000000400500043d0000000004450019000000000654004b00000000060000190000000106004039000007a40740009c000000620000213d0000000106600190000000620000c13d000000400040043f0000001f0480018f0000000005850436000000050980027200000a5e0000613d000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000796004b00000a560000413d000000000604004b00000a390000613d0000000506900210000000000161034f00000000066500190000000304400210000000000506043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000016043500000a390000013d000000400100043d0000004402100039000008250300004100000000003204350000002402100039000000190300003900000c990000013d00000020020000390000000004000019000001e0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b00000a770000413d000000000363004b00000a8a0000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001e0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000a04000029000000000014041b000001600100043d000000200210008c00000ab40000413d000007a40210009c000000620000213d0000000702000039000000000402041a000000010340019000000001054002700000007f0350018f000000000305c0190000001f0530008c00000000050000190000000105002039000000000454013f00000001044001900000010a0000c13d000000200430008c00000aad0000413d0000001f033000390000000505300270000007a5035000410000001f041000390000000504400270000000000554004b00000aad0000813d000007a504400041000000000004041b0000000104400039000000000534004b00000aa90000413d0000000000200435000000200300008a000000000431017000000cf70000c13d0000018005000039000007a50300004100000d040000013d00000003021002100000010002200089000000010300008a00000000022301cf000000000301004b0000000002006019000001800300043d000000000223016f000000000212019f000001200020043f000002200200043d000000200320008c00000ae40000413d000007a40320009c000000620000213d0000000803000039000000000503041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f00000001055001900000010a0000c13d000000200540008c00000add0000413d0000001f044000390000000506400270000007a6046000410000001f052000390000000505500270000000000665004b00000add0000813d000007a605500041000000000005041b0000000105500039000000000645004b00000ad90000413d0000000000300435000000200400008a000000000542017000000dd30000c13d0000024006000039000007a60400004100000de00000013d00000003032002100000010003300089000000010400008a00000000033401cf000000000402004b0000000003006019000002400400043d000000000334016f000000000223019f000001400020043f00000796040000410000000002000414000007960320009c0000000002048019000007960310009c00000000010480190000006001100210000000c002200210000000000121019f000007a7011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000a00000001001d000000e00010043f000002200100043d0000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000006001100210000000c002200210000000000121019f000007a8011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000900000001001d000001000010043f000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000a00010043f000000400300043d0000008002300039000000000012043500000060013000390000000902000029000000000021043500000040013000390000000a020000290000000000210435000000a001000039000800000001001d0000000001130436000000a0023000390000000004000410000900000004001d0000000000420435000007ab020000410000000000210435000a00000003001d000007ac0230009c000000620000213d0000000a04000029000000c002400039000700000002001d000000400020043f0000079602000041000007960310009c000000000102801900000040011002100000000003040433000007960430009c00000000030280190000006003300210000000000113019f0000000003000414000007960430009c0000000003028019000000c002300210000000000112019f0000079c011001c700008010020000391e531e4e0000040f00000001022001900000000b03000029000015000000613d000000000101043b000000800010043f0000000902000029000000c00020043f0000000e02000039000000000032041b000000000200041a0000ff000320019000000fd90000c13d000000ff0320018f000000ff0330008c00000b700000613d000000ff012001bf000000000010041b000000ff01000039000000400200043d000000000012043500000796010000410000000003000414000007960430009c0000000003018019000007960420009c00000000020180190000004001200210000000c002300210000000000121019f000007a3011001c70000800d020000390000000103000039000007b1040000411e531e490000040f0000000101200190000015000000613d000000c00100043d000900000001001d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a0001004430000004001000039000001c0001004430000000901000029000001e0001004430000006001000039000000e00300043d000002000010044300000220003004430000008001000039000001000300043d00000240001004430000026000300443000001200100043d00000008030000290000028000300443000002a000100443000000c001000039000001400300043d000002c000100443000002e000300443000001000020044300000007010000390000012000100443000007b20100004100001e540001042e0000008001200039000000000031043500000060012000390000000903000029000000000031043500000040012000390000000b030000290000000000310435000000070100002900000000011204360000082b0300004100000000003104350000082c0320009c000000620000213d000000a003200039000000400030043f0000079604000041000007960310009c000000000104801900000040011002100000000002020433000007960320009c00000000020480190000006002200210000000000112019f00000002020003670000008403200370000000000303043b000600000003001d000000a402200370000000000202043b000a00000002001d0000000002000414000007960320009c0000000002048019000000c002200210000000000112019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000400000001001d0000081d0100004100000000001004390000000001000412000500000001001d0000000400100443000000400100003900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000079d011001970000000002000410000200000002001d000000000112004b00000edc0000c13d0000081d010000410000000000100439000000050100002900000004001004430000002001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000300000001001d000007a90100004100000000001004390000000001000414000007960210009c0000079601008041000000c001100210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000030110006c00000edc0000c13d0000081d01000041000000000010043900000005010000290000000400100443000000240000044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d00000f370000013d000000190100003900000000001404350000082501000041000000000012043500000823013001c700001e5500010430000001000400008a000000000343016f0000000000320435000000000101004b000000200300003900000000030060190000003f01300039000000200200008a000000000221016f0000000001720019000000000221004b00000000020000190000000102004039000007a40310009c000000620000213d0000000102200190000000620000c13d000a00000007001d000000400010043f0000081d0100004100000000001004390000000b010000290000000400100443000000c001000039000000240010044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000400200043d000000000101043b000000ff0310008c00000dc80000c13d0000000805000039000000000405041a000000010640019000000001034002700000007f0130018f000000000103c0190000001f0310008c00000000030000190000000103002039000000000334013f00000001033001900000000a080000290000010a0000c13d0000000003120436000000000606004b00000e5c0000613d0000000000500435000000000401004b000000000400001900000e620000613d000007a60500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b00000c440000413d00000e620000013d0000000003000019000000000423004b00000c680000813d000000010400008a00000c540000013d0000000002050019000000000523004b00000c680000813d000000000523016f000000000623013f00000001066002700000000005560019000000000665004b0000000006000019000000010600403900000001066001900000065f0000c13d00000000001004350000085906500041000000000606041a0000079606600197000000000676004b00000c510000213d000000000345004b0000065f0000613d0000000103500039000000000523004b00000c540000413d000000000302004b000000000300001900000c6f0000613d00000000001004350000085a01200041000000000101041a0000002003100270000000400100043d0000000000310435000008310000013d0000079c011001c70000800902000039000000000309001900000000050000191e531e490000040f0000000b0900002900030000000103550000006001100270000107960010019d0000079601100197000000000301004b00000ca50000c13d000000400100043d000000010220019000000c940000613d000000000091043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d02000039000000010300003900000836040000411e531e490000040f0000000101200190000015000000613d000000000100001900001e540001042e000000440210003900000835030000410000000000320435000000240210003900000010030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e5500010430000007a40310009c000000620000213d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000007a40630009c000000620000213d0000000105500190000000620000c13d000000400030043f0000001f0310018f00000000041404360000000305000367000000050110027200000cc40000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000cbc0000413d000000000603004b00000c7e0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f000000000031043500000c7e0000013d000000400200043d0000001f0430018f000000050530027200000ce10000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000cd90000413d000000000604004b00000cf00000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000079601000041000007960420009c000000000201801900000040012002100000006002300210000000000121019f00001e5500010430000007a50300004100000020060000390000000005000019000000000706001900000160067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b00000cfa0000413d0000018005700039000000000414004b00000d0e0000813d0000000304100210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010310021000000001033001bf000000000032041b000000ff0200003900000abd0000013d00000861020000410000000a06000029000000000306004b000000000300001900000000030240190000086104600197000000000504004b000000000200a019000008610440009c000000000203c019000000000202004b00000d220000c13d000000000206004b000800000006001d00000d260000c13d000008610260009c0000065f0000613d0000000a0200002900080000002000510000000802000029000008160220009c00000e2a0000413d000000400100043d0000004402100039000008690300004100000000003204350000002402100039000000180300003900000c990000013d0000000b0100002900000000001004350000000901000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000301041a0000000102300039000000000021041b00000002010003670000004402100370000000000402043b000000400200043d000000c00520003900000009060000290000000000650435000000a00520003900000000003504350000008003200039000000000043043500000060032000390000000a04000029000000000043043500000040032000390000000b04000029000000000043043500000020032000390000081b040000410000000000430435000000c00400003900000000004204350000081c0420009c000000620000213d000000e004200039000000400040043f0000079605000041000007960430009c000000000305801900000040033002100000000002020433000007960420009c00000000020580190000006002200210000000000232019f000000a403100370000000000303043b000900000003001d000000c401100370000000000101043b000a00000001001d0000000001000414000007960310009c0000000001058019000000c001100210000000000121019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000500000001001d0000081d0100004100000000001004390000000001000412000600000001001d0000000400100443000000400100003900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000079d011001970000000002000410000300000002001d000000000112004b000011060000c13d0000081d010000410000000000100439000000060100002900000004001004430000002001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000400000001001d000007a90100004100000000001004390000000001000414000007960210009c0000079601008041000000c001100210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000040110006c000011060000c13d0000081d01000041000000000010043900000006010000290000000400100443000000240000044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000011610000013d000000400100043d000000440210003900000852030000410000000000320435000007ad020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000c9e0000013d000000ff0310018f000000200430008c00000e1f0000413d0000085c0100004100000000001204350000079601000041000007960320009c000000000201801900000040012002100000085d011001c700001e5500010430000007a60400004100000020070000390000000006000019000000000807001900000220078000390000000007070433000000000074041b000000200780003900000001044000390000002006600039000000000956004b00000dd60000413d0000024006800039000000000525004b00000dea0000813d0000000305200210000000f80550018f000000010700008a000000000557022f000000000575013f0000000006060433000000000556016f000000000054041b000000010220021000000001022001bf000000000023041b000000ff0200003900000aed0000013d00000000030000190000000a0130006c0000039a0000813d000680100000003d0000000a0200002900000df90000013d00000000020300190000000903000029000000000123004b0000039b0000813d000000000123016f000a00000002001d000900000003001d000000000223013f00000001022002700000000003120019000000000123004b0000000001000019000000010100403900000001011001900000065f0000c13d000b00000003001d000000070100002900000000001004350000000001000414000007960210009c0000079601008041000000c001100210000007a3011001c700000006020000291e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b030000290000000001310019000000000101041a0000079601100197000000080110006c00000df50000213d000000010100008a000000000113004b0000065f0000613d00000001033000390000000a02000029000000000123004b00000df90000413d0000039b0000013d0000085b0420009c0000000a08000029000000620000213d0000004004200039000000400040043f000000200420003900000000001404350000000000320435000000400100043d000b00000001001d00000e700000013d000000010200008a00000861040000410000000a03000029000000000223004b000000000200001900000000020420190000086103300197000008610530009c00000000040080190000086103300167000008610330009c000000000402c0190000001102000039000000000302041a000000000404004b00000ed00000613d0000000801300029000000000331004b0000000003000019000000010300403900000001033001900000065f0000c13d000000000012041b0000000b0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a000000080320027000000816033001970000000803300029000008160430009c0000065f0000213d000008620220019700000008033002100000086303300197000000000223019f000000000021041b000010bd0000013d000001000500008a000000000454016f0000000000430435000000000101004b000000200400003900000000040060190000003f01400039000000200300008a000000000131016f0000000003210019000000000113004b00000000010000190000000101004039000b00000003001d000007a40330009c000000620000213d0000000101100190000000620000c13d0000000b01000029000000400010043f0000000b010000290000085e0110009c000000620000213d0000000b030000290000002001300039000600000001001d000000400010043f0000000000030435000000400500043d0000002001500039000000e00300003900000000003104350000085f0100004100000000001504350000000041080434000000e0035000390000000000130435000a00000005001d0000010003500039000000000501004b00000e8d0000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000615004b00000e860000413d000000000413001900000000000404350000001f011000390009002000000092000000090110017f00000000031300190000000a0400002900000000014300490000004004400039000000000014043500000000160204340000000005630436000000000206004b00000ea30000613d000000000200001900000000035200190000000004210019000000000404043300000000004304350000002002200039000000000362004b00000e9c0000413d000800000005001d000700000006001d00000000016500190000000000010435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000a040000290000008002400039000000000300041000000000003204350000006002400039000000000012043500000007010000290000001f01100039000000090110017f00000008011000290000000002410049000000c0034000390000000000230435000000a00240003900000000000204350000000b0200002900000000020204330000000001210436000000000302004b000009b00000613d00000000030000190000000605000029000000005405043400000000014104360000000103300039000000000423004b00000eca0000413d000009b00000013d000000080430006c00000ff60000813d000000400100043d00000064021000390000086603000041000000000032043500000044021000390000086703000041000000000032043500000024021000390000002703000039000008690000013d000000400100043d000300000001001d0000002002100039000007ab01000041000100000002001d00000000001204350000081d010000410000000000100439000000050100002900000004001004430000006001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000302000029000000400220003900000000001204350000081d01000041000000000010043900000005010000290000000400100443000000070100002900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000030200002900000060022000390000000000120435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000304000029000000a0024000390000000203000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000007ac0140009c000000620000213d0000000303000029000000c001300039000000400010043f00000796010000410000000104000029000007960240009c000000000401801900000040024002100000000003030433000007960430009c00000000030180190000006003300210000000000223019f0000000003000414000007960430009c0000000003018019000000c001300210000000000121019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000400200043d0000002203200039000000040400002900000000004304350000081f0300004100000000003204350000000203200039000000000013043500000796040000410000000001000414000007960310009c0000000001048019000007960320009c000707960000004500000000020480190000004002200210000000c001100210000000000112019f00000820011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000007960320009c00000007030000290000000003024019000700000003001d0000000a03000029000008210330009c000012b60000a13d000000640120003900000826030000410000000000310435000000440120003900000827030000410000000000310435000000240120003900000022030000390000000000310435000007ad01000041000000000012043500000004012000390000002002000039000000000021043500000007010000290000004001100210000007b0011001c700001e550001043000000000010004150000000d0110008a0006000500100218000d00000000001d0000083d0100004100000000001004390000000001000410000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c700008002020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000000101004b0000108c0000c13d0000000701000029000000ff0110018f000000010110008c0000000001000019000000010100603900000006020000290000000502200270000000000201001f0000108f0000c13d000001000100008a000000000200041a000000000112016f00000001011001bf000000050200006b000001800000613d000200010000003d000001830000013d00000002020003670000000a0300002900000005050000290000000806000029000000000452034f000000000404043b000000200330003900000000004304350000002005500039000000000465004b00000f930000413d0000001c02000039000000000202041a000500000002001d0000000a020000290000000002020433000000000202004b00000fbf0000613d000880100000003d0000000003000019000b00000003001d000000050230021000000009022000290000000002020433000000000321004b00000fad0000813d0000000000100435000000200020043f000000000100041400000fb00000013d0000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700000008020000291e531e4e0000040f0000000102200190000015000000613d000000000101043b0000000b0300002900000001033000390000000a020000290000000002020433000000000223004b00000fa30000413d000000050110006c00000fef0000c13d0000000e01000039000b00000001001d000000000101041a000000020110008c000010540000c13d000000400100043d00000044021000390000087e03000041000000000032043500000024021000390000001f0300003900000c990000013d000000000302004b000000000300001900000fd10000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000343016f0000000102200210000000000423019f0000101a0000013d000007ad01000041000000070400002900000000001404350000000a030000290000012401300039000007ae0200004100000000002104350000010401300039000007af020000410000000000210435000000e40130003900000027020000390000000000210435000000c401300039000000200200003900000000002104350000079601000041000007960240009c00000000040180190000004001400210000007b0011001c700001e5500010430000000400100043d00000044021000390000087203000041000000000032043500000024021000390000000d0300003900000c990000013d00000000010104330000081601100197000000080110006c000010990000813d000000400100043d00000064021000390000086403000041000000000032043500000044021000390000086503000041000010950000013d000008140300004100000020060000390000000005000019000000000706001900000080067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b000010040000413d000000a005700039000000000424004b000010180000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010220021000000001042001bf000000000041041b000000010540019000000001034002700000007f0230018f000000000203c0190000001f0320008c00000000030000190000000103002039000000000334013f00000001033001900000010a0000c13d000000400300043d000000000505004b000010350000613d0000000000100435000000000102004b000010380000613d000008140100004100000000040000190000000005340019000000000601041a000000000065043500000001011000390000002004400039000000000524004b0000102d0000413d000010380000013d000001000100008a000000000114016f00000000001304350000079604000041000007960130009c00000000030480190000004001300210000007960320009c00000000020480190000006002200210000000000112019f0000000002000414000007960320009c0000000002048019000000c002200210000000000112019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000501043b0000000001000414000007960210009c0000079601008041000000c0011002100000079c011001c70000800d020000390000000203000039000008530400004100000c8f0000013d00000002010000390000000b02000029000000000012041b00000007010000290000079d01100197000a00000001001d00000000001004350000000f01000039000900000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000603000029000808160030019b0000000102200190000015000000613d000000000101043b000000000101041a00000008011002700000081601100197000000080110006c000011e40000c13d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000101041a000000ff01100190000012430000c13d000000400100043d00000064021000390000087c03000041000000000032043500000044021000390000087d03000041000000000032043500000024021000390000002203000039000008690000013d00000006010000290000000501100270000000000100001f000000400100043d00000064021000390000083e03000041000000000032043500000044021000390000083f03000041000000000032043500000024021000390000002e03000039000008690000013d000000080130006a000000000012041b0000000b0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a00000008032002700000081603300197000000080330006a000008160430009c0000065f0000213d000008620220019700000008033002100000086303300197000000000223019f000000000021041b0000001001000039000000000101041a000000000200041a0000079d0110019700000010022002700000079d0220019700000008030000291e5318cf0000040f0000000b010000291e531a030000040f000000400100043d0000000a02000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d020000390000000203000039000008680400004100000a280000013d0000000103000039000000000103041a0000079f011001970000000802000029000000000121019f000000000013041b000000400100043d000000000021043500000796050000410000000002000414000007960420009c0000000002058019000007960410009c00000000010580190000004001100210000000c002200210000000000112019f000007a3011001c70000800d02000039000007a1040000411e531e490000040f0000000101200190000015000000613d00002710010000390000001802000039000100000002001d000000000012041b000000400200043d00000000001204350000000001000414000007960310009c00000796040000410000000001048019000007960320009c00000000020480190000004002200210000000c001100210000000000121019f000007a3011001c70000800d0200003900000001030000390000082a040000411e531e490000040f0000000101200190000015000000613d000000000100041a0000ff0001100190000001960000613d0000000b0100006b000012f80000c13d000000400100043d00000044021000390000084f0300004100000dc00000013d000000400100043d000400000001001d0000002002100039000007ab01000041000200000002001d00000000001204350000081d010000410000000000100439000000060100002900000004001004430000006001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000402000029000000400220003900000000001204350000081d01000041000000000010043900000006010000290000000400100443000000070100002900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000040200002900000060022000390000000000120435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000000404000029000000a0024000390000000303000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000007ac0140009c000000620000213d0000000403000029000000c001300039000000400010043f00000796010000410000000204000029000007960240009c000000000401801900000040024002100000000003030433000007960430009c00000000030180190000006003300210000000000223019f0000000003000414000007960430009c0000000003018019000000c001300210000000000121019f0000079c011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000400200043d0000002203200039000000050400002900000000004304350000081f0300004100000000003204350000000203200039000000000013043500000796040000410000000001000414000007960310009c0000000001048019000007960320009c000707960000004500000000020480190000004002200210000000c001100210000000000112019f00000820011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000007960320009c00000007030000290000000003024019000700000003001d0000000a03000029000008210330009c00000f570000213d000000000101043b00000060032000390000000a0400002900000000004304350000004003200039000000090400002900000000004304350000002003200039000000080400002900000000004304350000000000120435000000000000043500000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000007020000290000004002200210000000000121019f00000822011001c700000001020000391e531e4e0000040f000000000301001900000060033002700000079603300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000011a90000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000011a20000413d000000000605004b000011b70000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013610000613d00000000010004330000079d02100198000012f40000613d000000400300043d000007ad0200004100000000002304350000000402300039000000200400003900000000004204350000000b0410014f00000044023000390000079601000041000007960530009c00000000010340190000002403300039000000400110021000000823011001c70000079d04400198000013810000c13d000000190400003900000000004304350000082503000041000000000032043500001e5500010430000000010330027000000000543200d9000000000543004b0000000003048019000000000432004b0000065f0000413d000000000010043500000000043200490000085903400041000000000303041a0000079603300197000000000373004b0000123d0000a13d000000000300001900000000020400190000000b0700002900000c4d0000013d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000600000002001d000008600220009c000000620000213d000000000101043b000000000101041a00000006030000290000006002300039000000400020043f00000020043000390000000802000029000500000004001d000000000024043500000001020000390000000000230435000000400230003900000080011002700000081601100197000400000002001d00000000001204350000000a0100002900000000001004350000000901000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d00000006020000290000000002020433000000000202004b000000000101043b000000000201041a0000087302200197000000010220c1bf0000000503000029000000000303043300000008033002100000086303300197000000000232019f0000000403000029000000000303043300000080033002100000087403300197000000000232019f000000000021041b000000400100043d000000080200002900000000002104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d02000039000000020300003900000875040000410000000a050000291e531e490000040f0000000101200190000015000000613d00000007010000291e531a030000040f000010700000013d000000010300008a000000000334004b0000000b070000290000065f0000613d000000010340003900000c4d0000013d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000400200043d000008600320009c000000620000213d000000000101043b0000006003200039000000400030043f000000000101041a000000800310027000000816033001970000004004200039000600000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000081601100197000800000001001d00000000001204350000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b0000001502000039000000000202041a0000079d022001980000127e0000613d0000001703000039000000000303041a000000070330014f0000079d0330019700000000322300d9000000000321004b0000065f0000413d00000000012100490000001a02000039000000000202041a000000000221004b0000000002000019000012960000a13d0000001402000039000000000202041a0000001b03000039000000000303041a000000000431004b000012960000813d0000001904000039000000000404041a000000000541004b0000065f0000413d000000000541004900000000612500a9000000000602004b000012940000613d00000000622100d9000000000252004b0000065f0000c13d000000000243004900000000122100d900000008312000b9000000080300006b0000129c0000613d00000008431000fa000000000223004b0000065f0000c13d0000001402000039000000000202041a000000000302004b0000099c0000613d00000000212100d90000000602000029000000000202043300000816022001970000000002210049000000000112004b00000000010000190000000101002039000000000101004b000000000200c019000808160020019c0000141a0000c13d000000400100043d00000064021000390000087803000041000000000032043500000044021000390000087903000041000000000032043500000024021000390000002f03000039000008690000013d000000000101043b00000060032000390000000a0400002900000000004304350000004003200039000000060400002900000000004304350000002003200039000000080400002900000000004304350000000000120435000000000000043500000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000007020000290000004002200210000000000121019f00000822011001c700000001020000391e531e4e0000040f000000000301001900000060033002700000079603300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000012de0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000012d70000413d000000000605004b000012ec0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013010000613d0000000001000433000a00000001001d0000079d01100198000013420000c13d000000400100043d00000044021000390000082e0300004100000d2c0000013d000000070100006b000013110000c13d000000400100043d00000044021000390000084e0300004100000000003204350000002402100039000000170300003900000c990000013d000000400200043d0000001f0430018f00000005053002720000130e0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013060000413d000000000604004b00000cf00000613d00000ce30000013d0000001002000039000000000102041a0000079f011001970000000b011001af000000000012041b00000011030000390000000701000029000000000013041b000000800400043d000007a40140009c000000620000213d0000001301000039000000000601041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f00000001066001900000010a0000c13d000000200650008c0000133a0000413d0000001f06400039000000050660027000000814076000410000081406000041000000200840008c000000000607801900000000001004350000001f0550003900000005055002700000081405500041000000000756004b0000133a0000813d000000000006041b0000000106600039000000000756004b000013360000413d000000200540008c000013750000413d00000000001004350000000a07400180000013860000c13d00000020060000390000081405000041000013910000013d00000000001004350000000901000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a0000000103200039000000000031041b000000090120006b000013710000c13d0000000a010000290000000b020000291e5315ec0000040f000000000100001900001e540001042e000000010100008a000000000112004b0000065f0000613d00000001032000390000000a0130006c00000df20000413d0000039a0000013d000000400200043d0000001f0430018f00000005053002720000136e0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013660000413d000000000604004b00000cf00000613d00000ce30000013d000000400100043d00000044021000390000082d0300004100000a710000013d000000000504004b00000000060000190000139e0000613d0000000305400210000000010600008a000000000556022f000000000565013f000000a00600043d000000000556016f0000000104400210000000000645019f0000139e0000013d0000001e0400003900000000004304350000082403000041000000000032043500001e550001043000000814050000410000002006000039000000000800001900000080096000390000000009090433000000000095041b000000200660003900000001055000390000002008800039000000000978004b000013890000413d000000000747004b0000139c0000813d0000000307400210000000f80770018f000000010800008a000000000778022f000000000787013f00000080066000390000000006060433000000000676016f000000000065041b000000010440021000000001064001bf000000000061041b00000841040000410000001405000039000000000045041b000000000402041a000000000503041a000000400200043d000000200320003900000060070000390000000000730435000000010760019000000001086002700000007f0380018f000000000308c01900000000005204350000001f0530008c00000000050000190000000105002039000000000856013f0000079d0540019700000001048001900000010a0000c13d000000600420003900000000003404350000008004200039000000000707004b000013c70000613d0000000000100435000000000103004b0000000001000019000013cd0000613d000008140600004100000000010000190000000007410019000000000806041a000000000087043500000001066000390000002001100039000000000731004b000013bf0000413d000013cd0000013d000001000100008a000000000116016f0000000000140435000000000103004b000000200100003900000000010060190000004003200039000008410400004100000000004304350000079603000041000007960420009c000000000203801900000040022002100000008001100039000007960410009c00000000010380190000006001100210000000000121019f0000000002000414000007960420009c0000000002038019000000c002200210000000000121019f0000079c011001c70000800d02000039000000020300003900000842040000411e531e490000040f0000000101200190000015000000613d0000000601000029000b079d0010019b000000000100041a0000ff0001100190000001960000613d00000009010000290000079d011001980000001602000039000000000302041a0000079f03300197000000000313019f000000000032041b0000000002000019000013f40000613d0000079d321001290000001504000039000000000304041a0000079f03300197000000000223019f000a00000004001d000000000024041b000000400200043d000000000012043500000796010000410000000003000414000007960430009c0000000003018019000007960420009c00000000020180190000004001200210000000c002300210000000000112019f000007a3011001c70000800d02000039000000010300003900000843040000411e531e490000040f0000000101200190000015000000613d0000000a01000029000000000101041a0000079d011001980000145e0000c13d000000400100043d0000000503000029000000040230006b000014640000a13d00000044021000390000084d03000041000000000032043500000024021000390000001a0300003900000c990000013d0000000a0100002900000000001004350000000901000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015000000613d000000000101043b000000000201041a000000800320027000000816033001970000000803300029000008160430009c0000065f0000213d000008760220019700000080033002100000087403300197000000000223019f000000000021041b0000001201000039000000000301041a0000000802300029000000000332004b0000000003000019000000010300403900000001033001900000065f0000c13d000000000021041b00000007010000291e531a030000040f0000001001000039000000000101041a0000079d01100197000000070200002900000008030000291e5318cf0000040f000000400100043d0000000802000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f000007a3011001c70000800d02000039000000020300003900000877040000410000000a050000291e531e490000040f0000000101200190000015000000613d00000001010000390000000b02000029000000000012041b000000000100001900001e540001042e0000000b0100006b0000146d0000c13d000000400100043d00000044021000390000084603000041000014690000013d0000000303000029000000050230006b000014940000a13d00000044021000390000084c0300004100000000003204350000002402100039000000010300002900000c990000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000000201004b0000065f0000613d00000845020000410000000000200439000000010110008a000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c70000800b020000391e531e4e0000040f0000000102200190000014930000613d000000000101043b000000060110014f0000079d011001970000001702000039000000000302041a0000079f03300197000000000113019f000000000012041b000014100000013d000000000001042f0000000302000029000008470220009c000014a00000413d00000064021000390000084a03000041000000000032043500000044021000390000084b03000041000000000032043500000024021000390000002a03000039000008690000013d00000019020000390000000403000029000000000032041b0000001a020000390000000504000029000000000042041b0000001b020000390000000305000029000000000052041b0000004002100039000000000052043500000020021000390000000000420435000000000031043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f00000848011001c70000800d02000039000000010300003900000831040000411e531e490000040f0000000101200190000015000000613d000000000100041a0000ff0001100190000001960000613d0000001c010000390000000602000029000000000021041b000000400100043d000000000021043500000796040000410000000002000414000007960320009c0000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d020000390000000103000039000b00000003001d00000849040000411e531e490000040f0000000101200190000015000000613d000000080600002900000010016002100000079a01100197000000000200041a0000079b03200197000000000113019f000000000010041b0000000001000414000007960310009c0000079601008041000000c0011002100000079c011001c700000010022002700000079d052001970000800d0200003900000003030000390000079e040000411e531e490000040f0000000101200190000015000000613d000000020100006b00000c920000c13d000000000200041a0000084001200197000000000010041b000000400100043d0000000b03000029000000000031043500000796020000410000000005000414000007960450009c0000000005028019000007960410009c00000000010280190000004001100210000000c002500210000000000112019f000007a3011001c70000800d02000039000007b10400004100000c8f0000013d000000000100001900001e550001043000000000430104340000000001320436000000000203004b0000150e0000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000532004b000015070000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000020030000390000000004310436000000003202043400000000002404350000004001100039000000000402004b000015240000613d000000000400001900000000051400190000000006430019000000000606043300000000006504350000002004400039000000000524004b0000151d0000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d0000086102000041000000830310008c000000000300001900000000030220190000086104100197000000000504004b0000000002008019000008610440009c000000000203c019000000000202004b000015520000613d00000002040003670000000402400370000000000602043b0000002402400370000000000202043b0000079d0320009c000015520000213d0000004403400370000000000303043b0000006405400370000000000705043b000007a40570009c000015520000213d0000002305700039000000000515004b000015520000813d0000000405700039000000000454034f000000000504043b000007a40450009c000015520000213d000000050850021000000024047000390000000007840019000000000117004b000015520000213d0000000001060019000000000001042d000000000100001900001e5500010430000008870210009c000015590000813d0000006001100039000000400010043f000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000008880210009c000015640000813d0000004001100039000000400010043f000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000007a40310009c000015770000213d0000000102200190000015770000c13d000000400010043f000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100041a00000010011002700000079d011001970000000002000411000000000121004b000015840000c13d000000000001042d000000400100043d000000440210003900000852030000410000000000320435000007ad020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e550001043000000010021002100000079a02200197000000000300041a0000079b04300197000000000224019f000000000020041b00000796020000410000000004000414000007960540009c0000000004028019000000c0024002100000079d061001970000079c012001c700000010023002700000079d052001970000800d0200003900000003030000390000079e040000411e531e490000040f0000000101200190000015ab0000613d000000000001042d000000000100001900001e55000104300000079d022001970000000000200435000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000015bc0000613d000000000101043b000000000001042d000000000100001900001e55000104300001000000000002000000000301041a000100000002001d000000000223004b000015d10000a13d000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000015d70000613d000000000101043b0000000101100029000000000001042d0000087a0100004100000000001004350000003201000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e55000104300000000002010019000000400100043d000008880310009c000015e60000813d0000004003100039000000400030043f000000000202041a00000020031000390000002004200270000000000043043500000796022001970000000000210435000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300005000000000002000500000002001d0000079d01100197000200000001001d00000000001004350000000b01000039000300000001001d000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000016360000613d000000000101043b000000000101041a000400000001001d0000000201000039000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f00000004030000290004079d0030019b0000000102200190000016360000613d000000000101043b000000000101041a000100000001001d0000000301000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000016360000613d00000005020000290000079d07200197000000000101043b000000000201041a0000079f02200197000000000272019f000000000021041b0000000001000414000007960210009c0000079601008041000000c0011002100000079c011001c70000800d0200003900000004030000390000088904000041000000020500002900000004060000291e531e490000040f0000000101200190000016360000613d0000000401000029000000050200002900000001030000291e5316380000040f000000000001042d000000000100001900001e55000104300009000000000002000900000003001d0000079d031001970000079d01200197000700000001001d000800000003001d000000000113004b000017b20000613d000000090100006b000017b20000613d000000080100006b000016f40000613d000000080100002900000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000201043b000000000102041a000600000001001d000000000101004b000017dc0000613d000500000002001d000000000020043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000400200043d000008880320009c000017df0000813d000000000101043b0000004003200039000000400030043f000000060300002900030001003000920000000301100029000000000101041a0000079603100197000000000332043600000020041002700000000000430435000600000004001d000000090140006c000017ea0000413d0000000001020433000400000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000040300002900000796033001970000000102200190000017b50000613d000000000101043b0000086b0210009c000017b60000813d0000000604000029000000090240006a000000000113004b000400000002001d000016a30000c13d000008120120009c000017bd0000213d0000000501000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000301100029000000000201041a000007960220019700000004040000290000002003400210000000000232019f000000000021041b000016de0000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000017b50000613d000000000101043b000008550210009c000017b60000213d000008570210009c0000000403000029000017c70000813d0000088a0230009c000017bd0000813d000000400400043d0000085b0240009c000017df0000213d0000004002400039000000400020043f0000000001140436000300000001001d00000000003104350000000501000029000000000201041a000007a40120009c000017df0000213d000200000004001d000100000002001d00000001012000390000000502000029000000000012041b000000000020043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000101100029000000020200002900000000020204330000079602200197000000030300002900000000030304330000002003300210000000000223019f000000000021041b0000000404000029000000400100043d000000200210003900000000004204350000000602000029000000000021043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f0000081a011001c70000800d0200003900000002030000390000088b0400004100000008050000291e531e490000040f0000000101200190000017b30000613d000000070100006b000017b20000613d000000070100002900000000001004350000000c01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000301043b000000000203041a000000000102004b000800000003001d000017570000613d000600000002001d000000000030043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000400200043d0000085b0320009c000017df0000213d000000000101043b0000004003200039000000400030043f000000060300002900040001003000920000000401100029000000000101041a00000796031001970000000003320436000000200410027000000000004304350000000901400029000900000001001d000600000004001d000000000141004b000000000100001900000001010040390000000101100190000017ea0000c13d0000000001020433000500000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000050300002900000796033001970000000102200190000017b50000613d000000000101043b000008550210009c000017b60000213d000000000113004b000017610000c13d0000000901000029000008120110009c0000000801000029000017bd0000213d000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000401100029000000000201041a000007960220019700000009030000290000002003300210000000000232019f0000179a0000013d000000400100043d0000085b0210009c000017df0000213d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000600000000001d000017610000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000017b50000613d000000000101043b000008550210009c000017b60000213d000007960210009c0000000803000029000017c70000213d0000000902000029000008120220009c000017bd0000213d000000400400043d0000085b0240009c000017df0000213d0000004002400039000000400020043f00000000021404360000000901000029000500000002001d0000000000120435000000000203041a000007a40120009c000017df0000213d000400000004001d000300000002001d0000000101200039000000000013041b000000000030043500000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007a3011001c700008010020000391e531e4e0000040f0000000102200190000017b30000613d000000000101043b0000000301100029000000040200002900000000020204330000079602200197000000050300002900000000030304330000002003300210000000000223019f000000000021041b0000000604000029000000400100043d000000200210003900000009030000290000000000320435000000000041043500000796020000410000000003000414000007960430009c0000000003028019000007960410009c00000000010280190000004001100210000000c002300210000000000112019f0000081a011001c70000800d0200003900000002030000390000088b0400004100000007050000291e531e490000040f0000000101200190000017b30000613d000000000001042d000000000100001900001e5500010430000000000001042f000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e03000041000017cd0000013d000000400100043d00000064021000390000088c03000041000000000032043500000044021000390000088d03000041000000000032043500000024021000390000002703000039000017d00000013d000000400100043d00000064021000390000088e03000041000000000032043500000044021000390000088f030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000000400100043d0000085b0210009c000017e50000a13d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300000004002100039000000400020043f0000002002100039000000000002043500000000000104350000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e550001043000040000000000020000081d0100004100000000001004390000000001000412000300000001001d00000004001004430000004001000039000000240010044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b0000079d011001970000000002000410000200000002001d000000000112004b000018390000c13d0000081d010000410000000000100439000000030100002900000004001004430000002001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000400000001001d000007a90100004100000000001004390000000001000414000007960210009c0000079601008041000000c001100210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000000040110006c000018390000c13d0000081d01000041000000000010043900000003010000290000000400100443000000240000044300000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000000000001042d000000400100043d000400000001001d0000002002100039000007ab01000041000100000002001d00000000001204350000081d010000410000000000100439000000030100002900000004001004430000006001000039000000240010044300000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b0000000402000029000000400220003900000000001204350000081d01000041000000000010043900000003010000290000000400100443000000800100003900000024001004430000000001000414000007960210009c0000079601008041000000c0011002100000081e011001c700008005020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b000000040200002900000060022000390000000000120435000007a901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f0000000102200190000018960000613d000000000101043b0000000404000029000000a0024000390000000203000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000008900140009c000018970000813d0000000403000029000000c001300039000000400010043f00000796010000410000000104000029000007960240009c000000000401801900000040024002100000000003030433000007960430009c00000000030180190000006003300210000000000223019f0000000003000414000007960430009c0000000003018019000000c001300210000000000121019f0000079c011001c700008010020000391e531e4e0000040f00000001022001900000189d0000613d000000000101043b000000000001042d000000000001042f0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e55000104300000086b0210009c000018a20000813d000000000001042d000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000008570210009c000018ba0000813d000000000001042d000000400100043d00000064021000390000088e03000041000000000032043500000044021000390000088f030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300005000000000002000000400400043d000000440540003900000000003504350000002003400039000008910500004100000000005304350000079d022001970000002405400039000000000025043500000044020000390000000000240435000008920240009c000019b60000813d0000079d021001970000008005400039000000400050043f000007ac0140009c000019b60000213d000000c001400039000000400010043f0000002001000039000300000001001d0000000000150435000000a0014000390000089306000041000000000061043500000000060404330000000001000414000000040420008c0000191f0000c13d0000000101000032000019600000613d000007a40210009c000019b60000213d0000001f02100039000000200300008a000000000232016f0000003f02200039000000000232016f000000400900043d0000000002290019000000000392004b00000000030000190000000103004039000007a40420009c000019b60000213d0000000103300190000019b60000c13d000000400020043f0000001f0210018f0000000003190436000000030400036700000005011002720000190f0000613d000000000500001900000005065002100000000007630019000000000664034f000000000606043b00000000006704350000000105500039000000000615004b000019070000413d000000000502004b000019610000613d0000000501100210000000000414034f00000000011300190000000302200210000000000301043300000000032301cf000000000323022f000000000404043b0000010002200089000000000424022f00000000022401cf000000000232019f0000000000210435000019610000013d000100000005001d0000079604000041000007960530009c00000000030480190000004003300210000007960560009c00000000060480190000006005600210000000000535019f000007960310009c0000000001048019000000c001100210000000000115019f000200000002001d1e531e490000040f000300000001035500000000030100190000006003300270000107960030019d0000079605300198000019790000613d0000001f0350003900000894033001970000003f033000390000089503300197000000400900043d0000000003390019000000000493004b00000000040000190000000104004039000007a40630009c000000020a000029000019b60000213d0000000104400190000019b60000c13d000000400030043f0000001f0450018f00000000035904360000000505500272000019500000613d000000000600001900000005076002100000000008730019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000019480000413d000000000604004b0000197c0000613d0000000505500210000000000151034f00000000055300190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000197c0000013d00000060090000390000000002000415000000050220008a00000005022002100000000001090433000000000301004b000019840000c13d000200000009001d0000083d0100004100000000001004390000000401000039000000040010044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c700008002020000391e531e4e0000040f0000000102200190000019e70000613d0000000002000415000000050220008a000019970000013d00000060090000390000008003000039000000020a00002900000000010904330000000102200190000019d30000613d0000000002000415000000040220008a0000000502200210000000000301004b000019870000613d0000000502200270000000000209001f000019a10000013d000200000009001d0000083d0100004100000000001004390000000400a0044300000796010000410000000002000414000007960320009c0000000002018019000000c00120021000000834011001c700008002020000391e531e4e0000040f0000000102200190000019e70000613d0000000002000415000000040220008a0000000502200210000000000101043b000000000101004b0000000209000029000019e80000613d00000000010904330000000502200270000000000209001f000000000201004b000019b50000613d0000086102000041000000200310008c000000000300001900000000030240190000086101100197000000000401004b000000000200a019000008610110009c000000000203c019000000000102004b000019bc0000c13d00000020019000390000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000019bc0000c13d000000000101004b000019be0000613d000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e5500010430000000400100043d00000064021000390000089603000041000000000032043500000044021000390000089703000041000000000032043500000024021000390000002a030000390000000000320435000007ad0200004100000000002104350000000402100039000000030300002900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000000000201004b000019fa0000c13d000000400200043d000300000002001d000007ad010000410000000000120435000000040120003900000001020000291e5315150000040f000000030400002900000000014100490000079602000041000007960310009c0000000001028019000007960340009c000000000402801900000040024002100000006001100210000000000121019f00001e5500010430000000000001042f000000400100043d00000044021000390000089803000041000000000032043500000024021000390000001d030000390000000000320435000007ad0200004100000000002104350000000402100039000000030300002900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e55000104300000079602000041000007960410009c0000000001028019000007960430009c000000000302801900000040023002100000006001100210000000000121019f00001e550001043000050000000000020000079d01100197000500000001001d00000000001004350000000201000039000300000001001d000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000101041a000400000001001d000000050100002900000000001004350000000f01000039000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000400200043d000008870320009c00001be60000813d000000000101043b0000006003200039000000400030043f000000000301041a0000008001300270000008160110019700000040042000390000000000140435000000ff043001900000000004000019000000010400c0390000000004420436000000080230027000000816022001970000000000240435000000000312004b0000000003000019000000050500002900001a480000a13d0000000002120049000008990120009c00001c210000813d0000001801000039000000000301041a00000000412300a900000000422100d9000000000232004b00001c210000c13d0000001402000039000000000202041a000000000302004b00001bca0000613d00000000132100d90000000402000029000000000132004b00001ad70000a13d000200000003001d000000000105004b00001bd00000613d00000000005004350000000301000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d00000002030000290000000402300069000000000101043b000000000101041a000400000002001d000200000001001d000000000121004b00001bda0000413d000000050100002900000000001004350000000301000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d00000004030000290000000202300069000000000101043b000000000021041b0000000401000039000000000201041a0000000002320049000000000021041b000000400100043d00000000003104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d0200003900000003030000390000089a04000041000000050500002900000000060000191e531e490000040f000000010120019000001bb60000613d000000050100002900000000001004350000000b01000039000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000101041a00000000000004350000089b02000041000000000202041a0000079d011001970000079d0220019700000004030000291e5316380000040f000000400100043d0000000d04000039000000000204041a000000000302004b00001be40000613d00000000004004350000085b0310009c00001be60000213d000200000004001d0000004003100039000000400030043f0000085a02200041000100000002001d000000000202041a0000079603200197000000000331043600000020042002700000000000430435000300000004001d000000040240006c00001c210000413d0000000001010433000500000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f00000005030000290000079603300197000000010220019000001bb80000613d000000000101043b000008550210009c00001bb90000213d0000000304000029000000040240006a000000000113004b00001b620000c13d000008120120009c000000020100002900001bc00000213d00000000001004350000002001200210000000010300002900001b5d0000013d000000000132004b00001b610000813d000000000105004b00001c010000613d00040000002300510000000403000039000000000203041a0000000401200029000000000221004b00000000020000190000000102004039000000010220019000001c210000c13d000200000003001d000000000013041b00000000005004350000000301000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d00000000003104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d0200003900000003030000390000089a04000041000000000500001900000005060000291e531e490000040f000000010120019000001bb60000613d0000000b01000039000000200010043f0000089b01000041000000000101041a000300000001001d0000000501000029000000000010043500000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001bb60000613d000000000101043b000000000201041a00000003010000290000079d011001970000079d0220019700000004030000291e5316380000040f000000400100043d0000000202000029000000000202041a0000088a0220009c00001c130000813d0000000d04000039000000000204041a000000000302004b000500000004001d00001b830000613d00000000004004350000085b0310009c00001be60000213d0000004003100039000000400030043f0000085a02200041000200000002001d000000000202041a0000079603200197000000000331043600000020022002700000000000230435000400040020002d000000040220006b00000000020000190000000102004039000000010220019000001c210000c13d0000000001010433000300000001001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f00000003030000290000079603300197000000010220019000001bb80000613d000000000101043b0000086b0210009c00001bb90000813d000000000113004b000000050200002900001b8b0000c13d0000000401000029000008120110009c00001bc00000213d0000000000200435000000040100002900000020011002100000000203000029000000000203041a0000079602200197000000000112019f000000000013041b000000000001042d000500000002001d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000010220019000001bb80000613d000000000101043b000008550210009c00001bb90000213d000007960210009c0000000205000029000000050400002900001bec0000213d000008120240009c00001bc00000213d000000400200043d0000085b0320009c00001be60000213d0000004003200039000000400030043f00000000031204360000000000430435000000000105041a000007a40410009c00001bab0000a13d00001be60000013d0000085b0210009c00001be60000213d0000004002100039000000400020043f00000020021000390000000000020435000000000001043500001b8b0000013d0000084401000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000010220019000001bb80000613d000000000101043b000008550210009c00001bb90000213d000008570210009c000000050500002900001bec0000813d00000004020000290000088a0220009c00001bc00000813d000000400200043d0000085b0320009c00001be60000213d0000004003200039000000400030043f000000000312043600000004010000290000000000130435000000000105041a000007a40410009c00001be60000213d0000000104100039000000000045041b00000000005004350000000002020433000007960220019700000000030304330000002003300210000000000223019f0000085901100041000000000021041b000000000001042d000000000100001900001e5500010430000000000001042f000000400100043d00000064021000390000086d03000041000000000032043500000044021000390000086e0300004100001bf20000013d000000400100043d00000064021000390000088c03000041000000000032043500000044021000390000088d0300004100000000003204350000002402100039000000270300003900001bf50000013d0000087a0100004100000000001004350000001201000039000000040010043f0000087b0100004100001e5500010430000000400100043d0000006402100039000008a10300004100000000003204350000004402100039000008a20300004100000000003204350000002402100039000000210300003900001bf50000013d000000400100043d00000064021000390000089f0300004100000000003204350000004402100039000008a00300004100000000003204350000002402100039000000220300003900001bf50000013d0000085b0210009c00001c1c0000a13d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000400100043d00000064021000390000088e03000041000000000032043500000044021000390000088f030000410000000000320435000000240210003900000026030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e5500010430000000400100043d00000044021000390000089e03000041000000000032043500000024021000390000001f030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e550001043000000064021000390000089c03000041000000000032043500000044021000390000089d0300004100000000003204350000002402100039000000300300003900001bf50000013d0000004002100039000000400020043f0000002002100039000000000002043500000000000104350000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e55000104300000001503000039000000000303041a0000079d0330019800001c330000613d0000001704000039000000000404041a000000000114013f0000079d0110019700000000313100d9000000000312004b00001c4c0000413d00000000021200490000001a01000039000000000101041a000000000112004b000000000100001900001c4b0000a13d0000001401000039000000000101041a0000001b03000039000000000303041a000000000432004b00001c4b0000813d0000001904000039000000000404041a000000000542004b00001c4c0000413d000000000542004900000000621500a9000000000601004b00001c490000613d00000000611200d9000000000151004b00001c4c0000c13d000000000143004900000000211200d9000000000001042d0000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e55000104300000006003300210000000200510003900000000003504350000003403100039000000000043043500000000002104350000005401100039000000000001042d000007a20420009c00001c7a0000813d00000005052002100000003f045000390000087106400197000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000007a40860009c00001c7a0000213d000000010770019000001c7a0000c13d000000400060043f00000000002404350000000002150019000000000332004b00001c800000213d000000000312004b00001c780000a13d00000002030003670000000005040019000000000613034f000000000606043b000000200550003900000000006504350000002001100039000000000621004b00001c710000413d0000000001040019000000000001042d0000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000100001900001e55000104300007000000000002000700000002001d000008990220009c00001ce30000813d000400000001001d0000079d01100197000600000001001d00000000001004350000000f01000039000500000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001ce10000613d0000000603000029000000400400043d000008870240009c00001cf80000813d000000000101043b000000000101041a0000006002400039000000400020043f00000020054000390000000702000029000200000005001d000000000025043500000001020000390000000000240435000300000004001d000000400240003900000080011002700000081601100197000100000002001d000000000012043500000000003004350000000501000029000000200010043f00000796030000410000000001000414000007960210009c0000000001038019000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001ce10000613d00000003020000290000000002020433000000000202004b000000000101043b000000000201041a0000087302200197000000010220c1bf0000000203000029000000000303043300000008033002100000086303300197000000000232019f0000000103000029000000000303043300000080033002100000087403300197000000000232019f000000000021041b000000400100043d000000070200002900000000002104350000000002000414000007960320009c00000796040000410000000002048019000007960310009c00000000010480190000004001100210000000c002200210000000000112019f000007a3011001c70000800d020000390000000203000039000008750400004100000006050000291e531e490000040f000000010120019000001ce10000613d00000004010000291e531a030000040f000000000001042d000000000100001900001e5500010430000000400100043d0000006402100039000008a30300004100000000003204350000004402100039000008a403000041000000000032043500000024021000390000002c030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e55000104300003000000000002000100000001001d0000079d01100197000300000001001d00000000001004350000000f01000039000200000001001d000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001d7c0000613d000000000101043b000000000101041a000000ff0110019000001d840000613d000000030100002900000000001004350000000201000029000000200010043f00000796010000410000000002000414000007960320009c0000000002018019000000c0012002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001d7c0000613d000000400200043d000008870320009c00001d990000813d000000000101043b0000006003200039000000400030043f000000000101041a000000800310027000000816033001970000004004200039000200000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000081601100197000300000001001d00000000001204350000081901000041000000000010043900000796010000410000000002000414000007960320009c0000000002018019000000c001200210000007aa011001c70000800b020000391e531e4e0000040f000000010220019000001d9f0000613d000000000201043b0000001501000039000000000101041a0000079d01100198000000030800002900001d500000613d0000001703000039000000000303041a000000010330014f0000079d0330019700000000311300d9000000000312004b00001d7e0000413d00000000021200490000001a01000039000000000101041a000000000112004b0000001401000039000000000300001900001d680000a13d000000000301041a0000001b04000039000000000404041a000000000542004b00001d680000813d0000001905000039000000000505041a000000000652004b00001d7e0000413d000000000652004900000000723600a9000000000703004b00001d660000613d00000000733200d9000000000363004b00001d7e0000c13d000000000354004900000000233200d900000000428300a9000000000408004b00001d6e0000613d00000000548200d9000000000334004b00001d7e0000c13d000000000101041a000000000301004b00001da00000613d00000000121200d90000000201000029000000000101043300000816011001970000000001120049000000000221004b00000000020000190000000102002039000000000202004b000000000100c019000000000001042d000000000100001900001e55000104300000087a0100004100000000001004350000001101000039000000040010043f0000087b0100004100001e5500010430000000400100043d00000064021000390000087c03000041000000000032043500000044021000390000087d030000410000000000320435000000240210003900000022030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c00000000010280190000004001100210000007b0011001c700001e55000104300000087a0100004100000000001004350000004101000039000000040010043f0000087b0100004100001e5500010430000000000001042f0000087a0100004100000000001004350000001201000039000000040010043f0000087b0100004100001e55000104300000001502000039000000000202041a0000079d0220019800001db00000613d0000001703000039000000000303041a000000000113013f0000079d0110019700000000212100d9000000000001042d0000000001000019000000000001042d000500000000000200000000030200190000001c02000039000000000202041a000100000002001d000300000003001d0000000032030434000400000003001d000000000202004b00001de20000613d000280100000003d0000000003000019000500000003001d000000050230021000000004022000290000000002020433000000000321004b00001dd00000813d0000000000100435000000200020043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700000002020000291e531e4e0000040f000000010220019000001de50000613d00001ddb0000013d0000000000200435000000200010043f0000000001000414000007960210009c0000079601008041000000c0011002100000081a011001c700008010020000391e531e4e0000040f000000010220019000001de50000613d0000000503000029000000000101043b000000010330003900000003020000290000000002020433000000000223004b00001dbe0000413d000000010110006c00001de70000c13d000000000001042d000000000100001900001e5500010430000000400100043d00000044021000390000087203000041000000000032043500000024021000390000000d030000390000000000320435000007ad0200004100000000002104350000000402100039000000200300003900000000003204350000079602000041000007960310009c0000000001028019000000400110021000000823011001c700001e55000104300000079d011001970000000103000039000000000203041a0000079f02200197000000000212019f000000000023041b000000400200043d000000000012043500000796010000410000000004000414000007960540009c0000000004018019000007960520009c00000000020180190000004001200210000000c002400210000000000112019f000007a3011001c70000800d02000039000007a1040000411e531e490000040f000000010120019000001e110000613d000000000001042d000000000100001900001e5500010430000000000001042f0000079603000041000007960410009c00000000010380190000004001100210000007960420009c00000000020380190000006002200210000000000112019f0000000002000414000007960420009c0000000002038019000000c002200210000000000112019f0000079c011001c700008010020000391e531e4e0000040f000000010220019000001e280000613d000000000101043b000000000001042d000000000100001900001e550001043000000000050100190000000000200439000000050130008c00001e380000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000631004b00001e300000413d00000796010000410000000002000414000007960420009c0000000002018019000007960430009c00000000030180190000006001300210000000c002200210000000000112019f000008a5011001c700000000020500191e531e4e0000040f000000010220019000001e480000613d000000000101043b000000000001042d000000000001042f00001e4c002104210000000102000039000000000001042d0000000002000019000000000001042d00001e51002104230000000102000039000000000001042d0000000002000019000000000001042d00001e530000043200001e540001042e00001e55000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff496e7465726e616c20766f746520747261636b657200000000000000000000004956540000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff0000000000000000000000000000000000000000ffff0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000020000002600000000000000000ccdd1baf560d2682736fa25752c8ccc0c5fc4079b245b0acf7389776308d5b1f00000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3020000000000000000000000000000000000000000000180000000000000000002000000000000000000000000000000000000000000024000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b02000002000000000000000000000000000000040000000000000000000000008b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f000000000000000000000000000000000000000000000000ffffffffffffff3f08c379a000000000000000000000000000000000000000000000000000000000616c697a696e6700000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e69746900000000000000000000000000000000000000840000000000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249800000002000000000000000000000000000002000000010000000000000000000000000000000000000000000000000000000000000000000000000095d89b4000000000000000000000000000000000000000000000000000000000c6e8d98100000000000000000000000000000000000000000000000000000000e85858d800000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000fc0c546900000000000000000000000000000000000000000000000000000000fc0c546a00000000000000000000000000000000000000000000000000000000ffa1ad7400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f56c854700000000000000000000000000000000000000000000000000000000eac989f700000000000000000000000000000000000000000000000000000000eac989f800000000000000000000000000000000000000000000000000000000f1127ed800000000000000000000000000000000000000000000000000000000e85858d900000000000000000000000000000000000000000000000000000000e90a182f00000000000000000000000000000000000000000000000000000000dd62ed3d00000000000000000000000000000000000000000000000000000000e12f3a6000000000000000000000000000000000000000000000000000000000e12f3a6100000000000000000000000000000000000000000000000000000000e834a83400000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000de032f5800000000000000000000000000000000000000000000000000000000c955725400000000000000000000000000000000000000000000000000000000c955725500000000000000000000000000000000000000000000000000000000d505accf00000000000000000000000000000000000000000000000000000000c6e8d98200000000000000000000000000000000000000000000000000000000c78d598500000000000000000000000000000000000000000000000000000000a4ef1f7700000000000000000000000000000000000000000000000000000000bb22dcca00000000000000000000000000000000000000000000000000000000c32b132500000000000000000000000000000000000000000000000000000000c32b132600000000000000000000000000000000000000000000000000000000c3cda52000000000000000000000000000000000000000000000000000000000bb22dccb00000000000000000000000000000000000000000000000000000000bf38b5c800000000000000000000000000000000000000000000000000000000ab803a7500000000000000000000000000000000000000000000000000000000ab803a7600000000000000000000000000000000000000000000000000000000b6d8f79f00000000000000000000000000000000000000000000000000000000a4ef1f7800000000000000000000000000000000000000000000000000000000a9059cbb000000000000000000000000000000000000000000000000000000009b642de000000000000000000000000000000000000000000000000000000000a3f4df7d00000000000000000000000000000000000000000000000000000000a3f4df7e00000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000009b642de100000000000000000000000000000000000000000000000000000000a011c8cc0000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009a0e7d66000000000000000000000000000000000000000000000000000000009ab24eb0000000000000000000000000000000000000000000000000000000003cf3a02400000000000000000000000000000000000000000000000000000000715018a50000000000000000000000000000000000000000000000000000000084b0196d000000000000000000000000000000000000000000000000000000008e539e8b000000000000000000000000000000000000000000000000000000008e539e8c0000000000000000000000000000000000000000000000000000000091ddadf40000000000000000000000000000000000000000000000000000000084b0196e000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000007cb64758000000000000000000000000000000000000000000000000000000007cb64759000000000000000000000000000000000000000000000000000000007ecebe0000000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000075aa9bc6000000000000000000000000000000000000000000000000000000005c19a95b000000000000000000000000000000000000000000000000000000006fcfff44000000000000000000000000000000000000000000000000000000006fcfff450000000000000000000000000000000000000000000000000000000070a08231000000000000000000000000000000000000000000000000000000005c19a95c00000000000000000000000000000000000000000000000000000000684de1f5000000000000000000000000000000000000000000000000000000004bf5d7e8000000000000000000000000000000000000000000000000000000004bf5d7e900000000000000000000000000000000000000000000000000000000587cde1e000000000000000000000000000000000000000000000000000000003cf3a02500000000000000000000000000000000000000000000000000000000495906570000000000000000000000000000000000000000000000000000000023b872dc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000395093500000000000000000000000000000000000000000000000000000000039509351000000000000000000000000000000000000000000000000000000003a46b1a800000000000000000000000000000000000000000000000000000000313ce567000000000000000000000000000000000000000000000000000000003644e515000000000000000000000000000000000000000000000000000000002ddbd139000000000000000000000000000000000000000000000000000000002ddbd13a000000000000000000000000000000000000000000000000000000002e7ba6ef0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000276801ec00000000000000000000000000000000000000000000000000000000144fa6d6000000000000000000000000000000000000000000000000000000001be1955f000000000000000000000000000000000000000000000000000000001be19560000000000000000000000000000000000000000000000000000000001f8d1d5000000000000000000000000000000000000000000000000000000000144fa6d70000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000000000000000000000000000000000000f56b96c00000000000000000000000000000000000000200000008000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000004000000000000000000000000066de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090f4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d0000000000000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000000000000000000000000000000000000400000000000000000000000006e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9000000000000000000000000000000000000000000000000ffffffffffffff1f310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000190100000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000420000000000000000000000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a00000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000006400000000000000000000000045524332305065726d69743a20696e76616c6964207369676e6174757265000064697361626c656420666f7220766f74696e6720706f77657200000000000000756500000000000000000000000000000000000000000000000000000000000045434453413a20696e76616c6964207369676e6174757265202773272076616c45524332305065726d69743a206578706972656420646561646c696e6500000002000000000000000000000000000000000000200000008000000000000000006c339c0bee516a4df5d7074ba7a974856d609f83666e915aa4a0f90e06989dc5e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf000000000000000000000000000000000000000000000000ffffffffffffff5f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000045434453413a20696e76616c6964207369676e617475726500000000000000004552433230566f7465733a207369676e61747572652065787069726564000000020000000000000000000000000000000000006000000080000000000000000034ebbb9e095e6c8737f99dd9923fb97ec1ca3d25cb39225975a934dd8d7a31b400000000000000000000000000000000000000600000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000005472616e73666572206661696c65642e000000000000000000000000000000003b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f000000000000000000000000000000000000000000000000000000436f6e74696e756f757356657374696e674d65726b6c65496e697469616c697a61626c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c726561ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000000000000000000000000000000de0b6b3a7640000433127dedcff849792656a12f4a9dbc0efeb80df5cce6310f53481a93cd71c71dccb8d94a5bbd764ed844afa20f2581be18d3fa84b36855e86a8f0c9316cba7d42cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd180b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3492064656d616e64206d6f72652072616e646f6d6e657373000000000000000000000000000000000000000000000000000000000000000000000000f48657010200000000000000000000000000000000000060000000000000000000000000914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a46616e20312032313030290000000000000000000000000000000000000000000076657374696e6720656e6473206166746572203431303234343438303020284a76657374696e6720656e64206265666f726520636c696666000000000000000076657374696e6720636c696666206265666f72652073746172740000000000004469737472696275746f723a20746f74616c20697320300000000000000000004469737472696275746f723a20746f6b656e20697320616464726573732830296e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420694f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572d70c1392a974224e639e7a9607dcb2c766826aecfe2dc356f442ce0488b01e1ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000010000d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4000000000000000000000000000000000000000000000000ffffffffffffffbfb3512b0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff9f8000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000ff00000000000000000000000000000000ffffffffffffffffffffffffffffff006f6e5265636f726420746f74616c00000000000000000000000000000000000064656372656173652067726561746572207468616e20646973747269627574697220746f74616c0000000000000000000000000000000000000000000000000064656372656173652067726561746572207468616e206469737472696275746fd81661cef4e40e0f1f97384c033d606e4d6b570554fc3524568d8f9fc84c838861646a7573746d656e74203e206d61782075696e7431323000000000000000006d75737420696e697469616c697a65206265666f72652061646a757374696e6700000000000000000000000000000000000000000000000000010000000000006d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000382062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e20344552433230566f7465733a20667574757265206c6f6f6b7570000000000000000200000000000000000000000000000000000054000000a000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0696e76616c69642070726f6f6600000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000db598eb8e0a3d3d5c2e02e4cab1ee8b65bb20e48fc7b42f4c76272de4cdd2434ff000000000000000000000000000000ffffffffffffffffffffffffffffffff47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d46d61626c65207269676874206e6f7700000000000000000000000000000000004469737472696275746f723a206e6f206d6f726520746f6b656e7320636c61694e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000065640000000000000000000000000000000000000000000000000000000000004469737472696275746f723a20636c61696d206e6f7420696e697469616c697a5265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a20696e73756666696369656e7420616c6c6f77616e6365000000ac657d3615bd618ee537848e2b33acd2a9df67d4776485ab6922b0421d324d2970a082310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000000000000000000000000000000000000000064000000800000000000000000efc1fd16ea80a922086ee4e995739d59b025c1bcea6d1f67855747480c83214b746f6b656e206973206164647265737328302900000000000000000000000000036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0000000000000000000000000000000000000000000000000ffffffffffffffa0000000000000000000000000000000000000000000000000ffffffffffffffc03134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f0000000100000000000000000000000000000000000000000000000000000000dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724323420626974730000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2032322062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2033000000000000000000000000000000000000000000000000ffffffffffffff40a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff805361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656400000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe06f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000000000000000000000000000000000000001000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76766572666c6f77696e6720766f746573000000000000000000000000000000004552433230566f7465733a20746f74616c20737570706c79207269736b73206f45524332303a206d696e7420746f20746865207a65726f206164647265737300636500000000000000000000000000000000000000000000000000000000000045524332303a206275726e20616d6f756e7420657863656564732062616c616e730000000000000000000000000000000000000000000000000000000000000045524332303a206275726e2066726f6d20746865207a65726f2061646472657375696e74313230292e6d617800000000000000000000000000000000000000004469737472696275746f723a20746f74616c416d6f756e74203e207479706528020000020000000000000000000000000000000000000000000000000000000054f32296fc7d5162be6c6559faf50933282ac43b7e5bad0a0471d7c6706ae34d", - "entries": [ - { - "constructorArgs": [], - "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", - "deploymentType": "create", - "factoryDeps": [], - "address": "0xfb563bAAaB145Bd393b36a2a76E92A1712F41f8C", - "txHash": "0x30759644b23c4d6e5cf32e13188ef8c5136ee9c90757c81fcf67d3508dbdb373" - } - ] -} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json deleted file mode 100644 index 3afb2268..00000000 --- a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol/ContinuousVestingMerkleDistributorFactory.json +++ /dev/null @@ -1,203 +0,0 @@ -{ - "sourceName": "contracts/ts/claim/factory/ContinuousVestingMerkleDistributorFactory.sol", - "contractName": "ContinuousVestingMerkleDistributorFactory", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "distributor", - "type": "address" - } - ], - "name": "DistributorDeployed", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_total", - "type": "uint256" - }, - { - "internalType": "string", - "name": "_uri", - "type": "string" - }, - { - "internalType": "uint256", - "name": "_start", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_cliff", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_end", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "_merkleRoot", - "type": "bytes32" - }, - { - "internalType": "uint160", - "name": "_maxDelayTime", - "type": "uint160" - }, - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "deployDistributor", - "outputs": [ - { - "internalType": "contract ContinuousVestingMerkleDistributor", - "name": "distributor", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "distributors", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_total", - "type": "uint256" - }, - { - "internalType": "string", - "name": "_uri", - "type": "string" - }, - { - "internalType": "uint256", - "name": "_start", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_cliff", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_end", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "_merkleRoot", - "type": "bytes32" - }, - { - "internalType": "uint160", - "name": "_maxDelayTime", - "type": "uint160" - }, - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "predictDistributorAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x0001000000000002000f000000000002000000000001035500000000030100190000006003300270000000d2033001970000000102200190000000260000c13d0000008002000039000000400020043f000000040230008c000001b90000413d000000000201043b000000e002200270000000d60420009c000000560000213d000000d90420009c0000008d0000613d000000da0220009c000001b90000c13d0000000002000416000000240330008c000001b90000413d000000000202004b000001b90000c13d0000000401100370000000000101043b000000000200041a000000000221004b000001b90000813d034202a20000040f0000000302200210000000000101041a000000000121022f000000d401100197000000ff0220008c0000000001002019000000850000013d0000000002000416000000000202004b000001b90000c13d0000001f02300039000000d302200197000000a002200039000000400020043f0000001f0230018f0000000504300272000000390000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000310000413d000000000502004b000000480000613d0000000504400210000000000141034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000200130008c000001b90000413d000000a00100043d000000d40210009c000001b90000213d000000800010043f000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000d501000041000003430001042e000000d70120009c000000b10000613d000000d80120009c000001b90000c13d0000000001000416000000000101004b000001b90000c13d0000000001030019034202350000040f034202af0000040f000000400400043d000b00000004001d0000003802400039000000000300041000000000003204350000002402400039000000db0300004100000000003204350000000002000412000d00000002001d000c00000000001d000a00000001001d0000800501000039000000440300003900000000040004150000000d0440008a0000000504400210000000dc020000410342031e0000040f0000000b030000290000001402300039000000000012043500000058013000390000000a020000290000000000210435000000dd0100004100000000001304350000000c013000390000003702000039034203080000040f0000000b030000290000007802300039000000000012043500000043013000390000005502000039034203080000040f000000d401100197000000400200043d0000000000120435000000d201000041000000d20320009c00000000020180190000004001200210000000de011001c7000003430001042e0000000002000416000001440430008c000001b90000413d000000000202004b000001b90000c13d0000000402100370000000000c02043b000000d402c0009c000001b90000213d0000002402100370000000000d02043b0000004402100370000000000402043b000000e00240009c000001b90000213d0000002302400039000000000232004b000001b90000813d0000000405400039000000000251034f000000000202043b000000e10620009c000000ab0000813d0000001f06200039000000200b00008a0000000006b6016f0000003f066000390000000006b6016f000000e20760009c000000c20000a13d000000f30100004100000000001004350000004101000039000000040010043f000000f40100004100000344000104300000000001000416000000000101004b000001b90000c13d0000000001000412000f00000001001d000e00000000001d0000800501000039000000440300003900000000040004150000000f0440008a0000000504400210000000dc020000410342031e0000040f000000d401100197000000800010043f000000df01000041000003430001042e0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000334004b000001b90000213d0000002003500039000000000331034f0000001f0420018f0000000505200272000000d70000613d00000000060000190000000507600210000000000873034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b000000cf0000413d000000000604004b000000e60000613d0000000505500210000000000353034f0000000304400210000000a005500039000000000605043300000000064601cf000000000646022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000363019f0000000000350435000000a0022000390000000000020435000000c402100370000000000602043b000000a402100370000000000502043b0000008402100370000000000f02043b0000006402100370000000000e02043b000000e402100370000000000302043b000000d40230009c000001b90000213d0000010402100370000000000402043b000000d40240009c000001b90000213d000a00000006001d000b00000005001d0000012401100370000000000601043b000000400100043d00000060021000390000014005000039000000000052043500000040021000390000000000d2043500000020021000390000000000c204350000016007100039000000800500043d00000000005704350000018007100039000000000805004b000001120000613d00000000080000190000000009780019000000a00a800039000000000a0a04330000000000a904350000002008800039000000000958004b0000010b0000413d0000000007750019000000000007043500000140071000390000000000670435000000e0061000390000000a070000290000000000760435000000c0061000390000000b070000290000000000760435000000a00610003900080000000f001d0000000000f60435000000800610003900090000000e001d0000000000e60435000000d4064001970000012004100039000700000006001d0000000000640435000000d4043001970000010003100039000600000004001d00000000004304350000001f035000390000000003b3016f000001600430003900000000004104350000019f033000390000000004b3016f0000000003140019000000000443004b00000000040000190000000104004039000000e00530009c000000ab0000213d0000000104400190000000ab0000c13d000000400030043f000000d204000041000000d20320009c000000000204801900000040022002100000000001010433000000d20310009c00000000010480190000006001100210000000000121019f0000000002000414000000d20320009c0000000002048019000000c002200210000000000112019f000000e3011001c7000080100200003900030000000b001d00050000000c001d00040000000d001d0342033d0000040f0000000102200190000001b90000613d000000000101043b000200000001001d000000dc0100004100000000001004390000000001000412000000040010044300000024000004430000000001000414000000d20210009c000000d201008041000000c001100210000000e4011001c700008005020000390342033d0000040f0000000102200190000001bb0000613d000000000101043b0000008802100270000000e502200197000000e6022001c700000000002004350000007801100210000000e7011001c7000000200010043f000000e8010000410000000002000414000000090010043f00000002010000290000000d0010043f00000060010000390000004d0010043f0000004d0100008a0000006d0010043f000000d203000041000000d20120009c0000000002038019000000c001200210000000e9011001c70000800602000039034203380000040f00000001022001900000017c0000613d000000000101043b000200d40010019c0000018d0000c13d000000400100043d0000004402100039000000f0030000410000000000320435000000240210003900000017030000390000000000320435000000f1020000410000000000210435000000040210003900000020030000390000000000320435000000d20210009c000000d2010080410000004001100210000000f2011001c70000034400010430000000000100041a000000e00210009c000000ab0000213d0000000102100039000000000020041b0000000000000435000000ea01100041000000000201041a000000eb022001970000000205000029000000000252019f000000000021041b000000d203000041000000400100043d000100000001001d0000000001000414000000d20210009c0000000001038019000000c001100210000000e3011001c70000800d020000390000000203000039000000ec04000041034203380000040f0000000101200190000001b90000613d000000ed010000410000000000100439000000020100002900000004001004430000000001000414000000d20210009c000000d201008041000000c001100210000000ee011001c700008002020000390342033d0000040f0000000102200190000001bb0000613d000000000101043b000000000101004b00000005030000290000000404000029000001bc0000c13d00000000010000190000034400010430000000000001042f000000010500002900000044015000390000012002000039000000000021043500000024015000390000000000410435000000ef010000410000000000150435000000040150003900000000003104350000012402500039000000800100043d00000000001204350000014402500039000000000301004b000001d40000613d00000000030000190000000004230019000000a005300039000000000505043300000000005404350000002003300039000000000413004b000001cd0000413d000000000221001900000000000204350000000104000029000001040240003900000007030000290000000000320435000000e40240003900000006030000290000000000320435000000c4024000390000000a030000290000000000320435000000a4024000390000000b03000029000000000032043500000084024000390000000803000029000000000032043500000064024000390000000903000029000000000032043500000000020004140000000203000029000000040330008c000002020000613d0000001f01100039000000030110017f000000d2030000410000000105000029000000d20450009c0000000004030019000000000405401900000040044002100000014401100039000000d20510009c00000000010380190000006001100210000000000141019f000000d20420009c0000000002038019000000c002200210000000000112019f0000000202000029034203380000040f00000001022001900000020f0000613d0000000101000029000000e00110009c000000ab0000213d0000000103000029000000400030043f00000002010000290000000000130435000000d201000041000000d20230009c00000000030180190000004001300210000000de011001c7000003430001042e000000400200043d000000000301001900000060033002700000001f0430018f000000d20330019700000005053002720000021f0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002170000413d000000000604004b0000022e0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000d201000041000000d20420009c000000000201801900000040012002100000006002300210000000000121019f00000344000104300000000004010019000000f501000041000001430240008c00000000020000190000000002012019000000f503400197000000000503004b0000000001008019000000f50330009c000000000102c019000000000101004b0000029a0000613d000000000a0003670000000401a00370000000000101043b000000d40210009c0000029a0000213d0000002402a00370000000000202043b0000004403a00370000000000703043b000000e00370009c0000029a0000213d0000002303700039000000000343004b0000029a0000813d000000040870003900000000038a034f000000000503043b000000e10350009c0000029c0000813d0000001f03500039000000200600008a000000000363016f0000003f03300039000000000663016f000000400300043d0000000006630019000000000936004b00000000090000190000000109004039000000e00b60009c0000029c0000213d00000001099001900000029c0000c13d000000400060043f000000000653043600000000075700190000002407700039000000000447004b0000029a0000213d000000200480003900000000074a034f0000001f0450018f0000000508500272000002760000613d0000000009000019000000050b900210000000000cb60019000000000bb7034f000000000b0b043b0000000000bc04350000000109900039000000000b89004b0000026e0000413d000000000904004b000002850000613d0000000508800210000000000787034f00000000088600190000000304400210000000000908043300000000094901cf000000000949022f000000000707043b0000010004400089000000000747022f00000000044701cf000000000494019f000000000048043500000000045600190000000000040435000000c404a00370000000000704043b000000a404a00370000000000604043b0000008404a00370000000000504043b0000006404a00370000000000404043b000000e408a00370000000000808043b000000d40980009c0000029a0000213d0000010409a00370000000000909043b000000d40b90009c0000029a0000213d000001240aa00370000000000a0a043b000000000001042d00000000010000190000034400010430000000f30100004100000000001004350000004101000039000000040010043f000000f4010000410000034400010430000000000200041a000000000212004b000002a90000a13d000000ea0110004100000000000004350000000002000019000000000001042d000000f30100004100000000001004350000003201000039000000040010043f000000f4010000410000034400010430000000400b00043d000000600cb00039000001400d0000390000000000dc0435000000400cb0003900000000002c0435000000d4021001970000002001b00039000000000021043500000000c30304340000016002b0003900000000003204350000018002b00039000000000d03004b000002c60000613d000000000d000019000000000e2d0019000000000fdc0019000000000f0f04330000000000fe0435000000200dd00039000000000e3d004b000002bf0000413d000000000c32001900000000000c0435000001400cb000390000000000ac0435000000d409900197000001200ab0003900000000009a0435000000d4088001970000010009b000390000000000890435000000e008b000390000000000780435000000c007b000390000000000670435000000a006b0003900000000005604350000008005b0003900000000004504350000001f03300039000000200400008a000000000343016f0000000003b300490000000002230019000000200320008a00000000003b04350000001f02200039000000000342016f0000000002b30019000000000332004b00000000030000190000000103004039000000e00420009c000002ff0000213d0000000103300190000002ff0000c13d000000400020043f000000d202000041000000d20310009c0000000001028019000000400110021000000000030b0433000000d20430009c00000000030280190000006003300210000000000113019f0000000003000414000000d20430009c0000000003028019000000c002300210000000000112019f000000e3011001c700008010020000390342033d0000040f0000000102200190000003050000613d000000000101043b000000000001042d000000f30100004100000000001004350000004101000039000000040010043f000000f401000041000003440001043000000000010000190000034400010430000000000001042f000000d203000041000000d20410009c00000000010380190000004001100210000000d20420009c00000000020380190000006002200210000000000112019f0000000002000414000000d20420009c0000000002038019000000c002200210000000000112019f000000e3011001c700008010020000390342033d0000040f00000001022001900000031c0000613d000000000101043b000000000001042d0000000001000019000003440001043000000000050100190000000000200439000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000231004b000003210000413d000000d2010000410000000002000414000000d20420009c0000000002018019000000d20430009c00000000030180190000006001300210000000c002200210000000000112019f000000f6011001c700000000020500190342033d0000040f0000000102200190000003370000613d000000000101043b000000000001042d000000000001042f0000033b002104210000000102000039000000000001042d0000000002000019000000000001042d00000340002104230000000102000039000000000001042d0000000002000019000000000001042d0000034200000432000003430001042e000003440001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000aaf10f4100000000000000000000000000000000000000000000000000000000aaf10f4200000000000000000000000000000000000000000000000000000000d4213aef0000000000000000000000000000000000000000000000000000000022bacceb0000000000000000000000000000000000000000000000000000000050b492ba000000000000000000000000000000005af43d82803e903d91602b57fd5bf3ff310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0000000000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f020000000000000000000000000000000000000000000000000000000000000002000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff0000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf33cda33511d41a8a5431b1770c5bc0ddd62e1cd30555d16659b89c0d60f4f9f570200000000000000000000000000000000000037000000090000000000000000290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffffffffffffffffffff0000000000000000000000000000000000000000448708bcd9fda3435ba79d40bb017e884dcbed0b1e972743c8fd32f6c5ff47bb1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000a011c8cc00000000000000000000000000000000000000000000000000000000455243313136373a2063726561746532206661696c656400000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd4dbde5c8f6d0953f0846b8e17d27c30604b1f7746b1369907ad8577afdb8c1", - "entries": [ - { - "constructorArgs": [ - "0xfb563bAAaB145Bd393b36a2a76E92A1712F41f8C" - ], - "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", - "deploymentType": "create", - "factoryDeps": [], - "address": "0x870C1744173498905c9a1Da624CcC9852513f90D", - "txHash": "0xc4d9e1a9ade486b4aabe585335a5b368a7179acda8ecfcff5e9bbc2e6e50498f" - } - ] -} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json deleted file mode 100644 index 918426ef..00000000 --- a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json +++ /dev/null @@ -1,1621 +0,0 @@ -{ - "sourceName": "contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol", - "contractName": "TrancheVestingMerkleDistributor", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "InvalidShortString", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "str", - "type": "string" - } - ], - "name": "StringTooLong", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } - ], - "name": "Adjust", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Claim", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fromDelegate", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "toDelegate", - "type": "address" - } - ], - "name": "DelegateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "delegate", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "previousBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newBalance", - "type": "uint256" - } - ], - "name": "DelegateVotesChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "EIP712DomainChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "total", - "type": "uint256" - } - ], - "name": "InitializeDistributionRecord", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IERC20", - "name": "token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "total", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "uri", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fractionDenominator", - "type": "uint256" - } - ], - "name": "InitializeDistributor", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint160", - "name": "maxDelayTime", - "type": "uint160" - } - ], - "name": "SetDelay", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "merkleRoot", - "type": "bytes32" - } - ], - "name": "SetMerkleRoot", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "recipient", - "type": "address" - } - ], - "name": "SetSweepRecipient", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IERC20", - "name": "token", - "type": "address" - } - ], - "name": "SetToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "total", - "type": "uint256" - } - ], - "name": "SetTotal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint128", - "name": "time", - "type": "uint128" - }, - { - "indexed": false, - "internalType": "uint128", - "name": "VestedFraction", - "type": "uint128" - } - ], - "name": "SetTranche", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "string", - "name": "uri", - "type": "string" - } - ], - "name": "SetUri", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "voteFactor", - "type": "uint256" - } - ], - "name": "SetVoteFactor", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "SweepNative", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "SweepToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "CLOCK_MODE", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "internalType": "int256", - "name": "amount", - "type": "int256" - } - ], - "name": "adjust", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint32", - "name": "pos", - "type": "uint32" - } - ], - "name": "checkpoints", - "outputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "fromBlock", - "type": "uint32" - }, - { - "internalType": "uint224", - "name": "votes", - "type": "uint224" - } - ], - "internalType": "struct ERC20Votes.Checkpoint", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "internalType": "uint256", - "name": "totalAmount", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "merkleProof", - "type": "bytes32[]" - } - ], - "name": "claim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "claimed", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "clock", - "outputs": [ - { - "internalType": "uint48", - "name": "", - "type": "uint48" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "delegatee", - "type": "address" - } - ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "delegatee", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "delegateBySig", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "delegates", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "distancePerSecond", - "outputs": [ - { - "internalType": "uint160", - "name": "", - "type": "uint160" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "eip712Domain", - "outputs": [ - { - "internalType": "bytes1", - "name": "fields", - "type": "bytes1" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifyingContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256[]", - "name": "extensions", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - } - ], - "name": "getClaimableAmount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - } - ], - "name": "getDistributionRecord", - "outputs": [ - { - "components": [ - { - "internalType": "bool", - "name": "initialized", - "type": "bool" - }, - { - "internalType": "uint120", - "name": "total", - "type": "uint120" - }, - { - "internalType": "uint120", - "name": "claimed", - "type": "uint120" - } - ], - "internalType": "struct DistributionRecord", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getFairDelayTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFractionDenominator", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMerkleRoot", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "timepoint", - "type": "uint256" - } - ], - "name": "getPastTotalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timepoint", - "type": "uint256" - } - ], - "name": "getPastVotes", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSweepRecipient", - "outputs": [ - { - "internalType": "address payable", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalVotes", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "i", - "type": "uint256" - } - ], - "name": "getTranche", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "time", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "vestedFraction", - "type": "uint128" - } - ], - "internalType": "struct Tranche", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTranches", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "time", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "vestedFraction", - "type": "uint128" - } - ], - "internalType": "struct Tranche[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "internalType": "uint256", - "name": "time", - "type": "uint256" - } - ], - "name": "getVestedFraction", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getVoteFactor", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getVotes", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_total", - "type": "uint256" - }, - { - "internalType": "string", - "name": "_uri", - "type": "string" - }, - { - "components": [ - { - "internalType": "uint128", - "name": "time", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "vestedFraction", - "type": "uint128" - } - ], - "internalType": "struct Tranche[]", - "name": "_tranches", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "_merkleRoot", - "type": "bytes32" - }, - { - "internalType": "uint160", - "name": "_maxDelayTime", - "type": "uint160" - }, - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "merkleProof", - "type": "bytes32[]" - } - ], - "name": "initializeDistributionRecord", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "maxDelayTime", - "outputs": [ - { - "internalType": "uint160", - "name": "", - "type": "uint160" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "numCheckpoints", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "randomValue", - "outputs": [ - { - "internalType": "uint160", - "name": "", - "type": "uint160" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_merkleRoot", - "type": "bytes32" - } - ], - "name": "setMerkleRoot", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address payable", - "name": "_recipient", - "type": "address" - } - ], - "name": "setSweepRecipient", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - } - ], - "name": "setToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_total", - "type": "uint256" - } - ], - "name": "setTotal", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "time", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "vestedFraction", - "type": "uint128" - } - ], - "internalType": "struct Tranche[]", - "name": "_tranches", - "type": "tuple[]" - } - ], - "name": "setTranches", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_uri", - "type": "string" - } - ], - "name": "setUri", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_voteFactor", - "type": "uint256" - } - ], - "name": "setVoteFactor", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "sweepNative", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "sweepNative", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "token", - "type": "address" - } - ], - "name": "sweepToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "sweepToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "token", - "outputs": [ - { - "internalType": "contract IERC20", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "total", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x0004000000000002000f000000000002000000000301001900000060033002700000081b0030019d0000081b0b3001970003000000b10355000200000001035500000001022001900000003e0000c13d0000008005000039000000400050043f0000000402b0008c000015c70000413d000000000201043b000000e002200270000008380420009c000000830000a13d000008390420009c000000a50000213d000008510420009c000000e90000213d0000085d0420009c000001f40000213d000008630420009c000004040000213d000008660120009c000006510000613d000008670120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000000603000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f0000000105500190000001450000c13d000000800010043f000000000404004b000009400000613d0000000000300435000000000201004b0000000002000019000009610000613d000008c8030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000000360000413d000009610000013d0000016001000039000000400010043f0000000001000416000000000101004b000015c70000c13d0000001501000039000001600010043f0000081c02000041000001800020043f000001a00010043f000001c00020043f0000000303000039000001e00030043f0000081d01000041000002000010043f0000026001000039000000400010043f0000000101000039000c00000001001d000002200010043f0000081e01000041000002400010043f000000000600041100000010016002100000081f01100197000000000200041a0000082004200197000000000141019f000000000010041b0000081b0500004100000000010004140000081b0410009c0000000001058019000000c00110021000000821011001c7000000100220027000000822052001970000800d020000390000082304000041000b00000006001d2067205d0000040f0000000101200190000015c70000613d0000000c03000029000000000103041a00000824011001970000000b02000029000000000121019f000000000013041b000002600020043f00000000010004140000081b0210009c0000081b01008041000000c00110021000000825011001c70000800d0200003900000826040000412067205d0000040f0000000101200190000015c70000613d000001a00500043d000008270150009c0000013a0000413d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000008680420009c000000da0000a13d000008690420009c0000011c0000213d000008750420009c000002c50000213d0000087b0420009c000004d40000213d0000087e0420009c000007d10000613d0000087f0220009c000015c70000c13d00000000020004160000002404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000302043b000000000200041a000000100220027000000822022001970000000004000411000000000242004b000008740000c13d0000000102000039000000000402041a00000000050004140000082204400197000000040640008c000009740000c13d0000000001b1034f0000000108000031000009f20000013d0000083a0420009c000000f50000213d000008460420009c000002670000213d0000084c0420009c0000040d0000213d0000084f0420009c000006660000613d000008500220009c000015c70000c13d0000000002000416000000e403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002402100370000000000202043b000b00000002001d000008220220009c000015c70000213d0000006402100370000000000202043b000a00000002001d0000008401100370000000000101043b000900000001001d000000ff0110008c000015c70000213d000800000005001d000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000a0110006c00000d600000a13d000000400100043d0000004402100039000008b603000041000006040000013d000008800420009c0000014b0000a13d000008810420009c000001540000213d000008870420009c000003560000213d0000088a0420009c000005cf0000613d0000088b0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d00000017010000390000081d0000013d000008520420009c0000027c0000213d000008580420009c000004390000213d0000085b0420009c000006840000613d0000085c0220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000005bf0000013d0000083b0420009c000002ba0000213d000008410420009c0000044b0000213d000008440420009c000006910000613d000008450220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b0000000004020019000008220220009c000015c70000213d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000002401100370000000000301043b000b00000003001d0000000101000039000000000101041a00000822021001970000000001040019000c00000001001d20671a230000040f000000400100043d0000000b0200002900000000002104350000081b020000410000000003000414000009db0000013d0000086a0420009c000002d80000213d000008700420009c000004ff0000213d000008730420009c000008020000613d000008740120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d000000000100041a000000100210027000000822022001970000000005000411000000000252004b000008740000c13d0000082001100197000000000010041b0000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000821011001c70000800d020000390000000303000039000008230400004100000000060000190000067f0000013d0000000504000039000000000104041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000000112004b000003130000613d000008a50100004100000000001004350000002201000039000000040010043f000008a60100004100002069000104300000088c0420009c0000034b0000a13d0000088d0420009c000003e60000213d000008900420009c000006190000613d000008910120009c000004080000613d000015c70000013d000008820420009c000003ae0000213d000008850420009c000006080000613d000008860220009c000015c70000c13d0000000002000416000000e404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000004402100370000000000402043b000008290240009c000015c70000213d00000023024000390000000002b2004b000015c70000813d0000000405400039000000000251034f000000000202043b000008290620009c0000007d0000213d0000001f06200039000000200800008a000000000686016f0000003f06600039000000000686016f000008a10760009c0000007d0000213d0000008006600039000000400060043f000000800020043f000000000424001900000024044000390000000004b4004b000015c70000213d000b00000008001d0000002004500039000000000441034f0000001f0520018f00000005062002720000018d0000613d00000000070000190000000508700210000000000984034f000000000909043b000000a00880003900000000009804350000000107700039000000000867004b000001850000413d000000000705004b0000019c0000613d0000000506600210000000000464034f0000000305500210000000a006600039000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f0000000000460435000000a00220003900000000000204350000006402100370000000000202043b000008290420009c000015c70000213d00000023042000390000000004b4004b000015c70000813d0000000404200039000000000441034f000000000504043b000008290450009c0000007d0000213d00000005045002100000003f04400039000008a004400197000000400600043d0000000004460019000a00000006001d000000000664004b00000000060000190000000106004039000008290740009c0000007d0000213d00000001066001900000007d0000c13d000000400040043f0000000a040000290000000004540436000900000004001d0000002402200039000000060450021000000000042400190000000006b4004b000015c70000213d000000000505004b000011ce0000c13d000000a402100370000000000202043b000800000002001d000008220220009c000015c70000213d000000c401100370000000000101043b000600000001001d000008220110009c000015c70000213d000000000100041a000700000001001d0004ff00001001940000124b0000c13d0000000701000029000000ff0110019000000000020000190000000102006039000d00000002001d00000000020004150000000d0220008a0005000500200218000000000101004b0000124f0000c13d000001000100008a000000070110017f00000001011001bf000008e80110019700000100011001bf000300000000001d000000000010041b00000002020003670000002403200370000000000303043b000700000003001d0000008402200370000000000202043b000400000002001d0000ff0001100190000013230000c13d000000400100043d0000006402100039000008fb0300004100000000003204350000004402100039000008fc03000041000000000032043500000024021000390000002b03000039000007f60000013d0000085e0420009c000004720000213d000008610420009c000006c40000613d000008620220009c000015c70000c13d00000000020004160000002404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000502043b000008290250009c000015c70000213d00000023025000390000000002b2004b000015c70000813d0000000406500039000000000261034f000000000202043b000008290420009c0000007d0000213d0000001f07200039000000200400008a000000000747016f0000003f07700039000000000747016f000008a10870009c0000007d0000213d0000008007700039000000400070043f000000800020043f000000000525001900000024055000390000000003b5004b000015c70000213d0000002003600039000000000131034f0000001f0320018f0000000505200272000002270000613d00000000060000190000000507600210000000000871034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000021f0000413d000000000603004b000002360000613d0000000505500210000000000151034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f0000000000150435000000a0012000390000000000010435000000000100041a000000100110027000000822011001970000000002000411000000000121004b00000ded0000c13d000000800200043d000008290120009c0000007d0000213d0000001301000039000000000501041a000000010350019000000001065002700000007f0360018f000000000306c0190000001f0630008c00000000060000190000000106002039000000000565013f0000000105500190000001450000c13d000000200530008c0000025f0000413d0000001f0520003900000005055002700000089b065000410000089b05000041000000200720008c000000000506801900000000001004350000001f0330003900000005033002700000089b03300041000000000635004b0000025f0000813d000000000005041b0000000105500039000000000635004b0000025b0000413d0000001f0320008c00000fca0000a13d000000000010043500000000044201700000103f0000c13d000000a0050000390000089b030000410000104c0000013d000008470420009c000004b70000213d0000084a0420009c000006f20000613d0000084b0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008220110009c000015c70000213d206716c20000040f0000000c010000292067200d0000040f0000000001000019000020680001042e000008530420009c000004c00000213d000008560420009c0000070a0000613d000008570220009c000015c70000c13d0000000002000416000000c403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000004402100370000000000202043b000b00000002001d0000002402100370000000000202043b000a00000002001d0000006401100370000000000101043b000900000001001d000000ff0110008c000015c70000213d000800000005001d000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000400200043d000000000101043b0000000b03000029000000000131004b00000c650000a13d0000004401200039000008bd03000041000000000031043500000024012000390000001d030000390000000000310435000008320100004100000000001204350000000401200039000000200300003900000000003104350000081b010000410000081b0320009c00000000020180190000004001200210000008b1011001c700002069000104300000083c0420009c000004c90000213d0000083f0420009c000007150000613d000008400120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d00000016010000390000081d0000013d000008760420009c0000051d0000213d000008790420009c0000080e0000613d0000087a0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000201043b000008220120009c000015c70000213d0000000001000411206717400000040f0000000001000019000020680001042e0000086b0420009c000005340000213d0000086e0420009c000008220000613d0000086f0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d000008ab0100004100000000001004390000000001000412000c00000001001d0000000400100443000000a00100003900000024001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000400700043d000000000101043b000000ff0210008c000009410000c13d0000000704000039000000000304041a000000010530019000000001023002700000007f0120018f000000000102c0190000001f0210008c00000000020000190000000102002039000000000223013f0000000102200190000001450000c13d0000000002170436000000000505004b00000bc00000613d0000000000400435000000000301004b000000000300001900000bc60000613d0000082a0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000513004b0000030b0000413d00000bc60000013d000000200130008c000003350000413d000900000003001d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d0000000a050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000009010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000b04000029000003350000813d000000000002041b0000000102200039000000000312004b000003310000413d0000001f0150008c000005b00000a13d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000200200008a0000000a060000290000000003260170000000000101043b000008ce0000c13d0000002002000039000008d80000013d000008920420009c000008ae0000613d000008930420009c000005bc0000613d000008940120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000001401000039000008360000013d000008880420009c0000060f0000613d000008890220009c000015c70000c13d00000000020004160000008404b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b0000002404100370000000000404043b000800000004001d000008220440009c000015c70000213d0000004404100370000000000404043b000700000004001d0000006404100370000000000404043b000008290540009c000015c70000213d00000023054000390000000005b5004b000015c70000813d0000000405400039000000000151034f000000000101043b000c00000001001d000008290110009c000015c70000213d00000024014000390000000c030000290000000503300210000600000001001d000b00000003001d000900000013001d0000000901b0006b000015c70000213d000000a00020043f00000008010000290000006001100210000000c00010043f0000000701000029000000d40010043f0000005401000039000000800010043f0000010001000039000000400010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008fd011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000b020000290000003f02200039000008a002200197000000400300043d0000000002230019000b00000003001d000000000332004b00000000030000190000000103004039000008290420009c0000007d0000213d00000001033001900000007d0000c13d000000400020043f0000000b020000290000000c040000290000000002420436000a00000002001d0000000902000029000000000220007c000015c70000213d0000000c0200006b00000fd60000c13d0000001a02000039000000000202041a000600000002001d000010060000013d000008830420009c000006140000613d000008840220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008220110009c000015c70000213d000000000100041100000000001004350000000301000039000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000c020000290000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000101041a000000010200008a000000000121013f00000024020000390000000202200367000000000202043b000000000112004b00000a9f0000a13d000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300000088e0420009c000006340000613d0000088f0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000000401100370000000000101043b0000001102000039000000000012041b000000800010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008b7011001c70000800d0200003900000001030000390000090b040000410000067f0000013d000008640420009c000007320000613d000008650120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000000401000039000008360000013d0000084d0420009c000007440000613d0000084e0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000001903000039000000000203041a000008290120009c0000007d0000213d00000005012002100000003f01100039000008a004100197000008a10140009c0000007d0000213d0000008001400039000000400010043f000000800020043f0000000000300435000000000302004b00000d420000613d000008310340009c0000007d0000213d000008a203000041000000a00400003900000000050000190000004006100039000000400060043f000000000603041a000000200710003900000080086002700000000000870435000008a30660019700000000006104350000000004140436000000400100043d0000000105500039000000000625004b00000d420000813d0000000103300039000008a40610009c000004280000a13d0000007d0000013d000008590420009c000007600000613d0000085a0220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000302043b000008220230009c000015c70000213d0000002401100370000000000201043b000000000103001920671e260000040f000007bf0000013d000008420420009c000007800000613d000008430220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002401100370000000000101043b000b00000001001d0000081b0110009c000015c70000213d206717030000040f0000000c0100002900000000001004350000000c01000039000000200010043f00000040020000390000000001000019206720280000040f0000000b02000029206717120000040f2067172d0000040f00000000210104340000081b01100197000000400300043d00000000011304360000000002020433000008990220019700000000002104350000081b010000410000075b0000013d0000085f0420009c000007a00000613d000008600220009c000015c70000c13d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d000000000200041100000000002004350000000302000039000000200020043f0000002401100370000000000101043b000b00000001001d0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000c020000290000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000501041a000000400100043d0000083202000041000000000021043500000004021000390000002003000039000000000032043500000044021000390000081b030000410000081b0410009c0000000003014019000000240410003900000040033002100000000b0550006c00000cd70000813d00000025050000390000000000540435000008c20400004100000000004204350000006401100039000008c302000041000000000021043500000835013001c70000206900010430000008480420009c000007b50000613d000008490120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000001201000039000008360000013d000008540120009c000007c70000613d000008550120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d00000001010000390000081d0000013d0000083d0120009c000007cc0000613d0000083e0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d0000000301000039000000800010043f0000089501000041000020680001042e0000087c0120009c000008320000613d0000087d0120009c000015c70000c13d0000000001000416000000000101004b000015c70000c13d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000400300043d000000000101043b000008e00110009c0000094c0000413d0000006401300039000008e20200004100000000002104350000004401300039000008e3020000410000000000210435000000240130003900000026020000390000000000210435000008320100004100000000001304350000000401300039000000200200003900000000002104350000081b010000410000081b0230009c0000000003018019000000400130021000000835011001c70000206900010430000008710420009c0000083a0000613d000008720220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000000401100370000000000101043b0000001a02000039000000000012041b000000800010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008b7011001c70000800d020000390000000103000039000008d4040000410000067f0000013d000008770420009c0000087d0000613d000008780220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000c01000039000000200010043f00000040020000390000000001000019206720280000040f000000000101041a000c00000001001d20671a0b0000040f0000065d0000013d0000086c0420009c000008a80000613d0000086d0220009c000015c70000c13d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000008ca0210009c000007ed0000213d0000000c07000029000000000117004b00000a9b0000813d0000000d01000039000000000201041a000000060320008c00000cdd0000413d0000008003200270000008cb0420009c0000000003024019000008cb0420009c0000008004000039000000000400401900000040054001bf000008270630009c00000000040580190000004005300270000008270630009c000000000305801900000020054001bf000008cc0630009c00000000040580190000002005300270000008cc0630009c000000000305801900000010054001bf000008cd0630009c00000000040580190000001005300270000008cd0630009c0000000003058019000001000530008c00000008044080390000000803308270000000100530008c00000004044080390000000403308270000000040530008c00000002044080390000000203308270000000010330008c00000001044020390000000103400270000000000432022f000000010330020f0000000003430019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d90000000003340019000000020430008c00000a950000413d000000010330027000000000543200d9000000000543004b0000000003048019000000000432004b000003e00000413d00000000001004350000000004320049000008ce03400041000000000303041a0000081b03300197000000000373004b000012710000a13d000000000300001900000000020400190000000c07000029000000000423004b00000ce00000413d00000cf90000013d000000000105004b0000000001000019000005b40000613d000001c00100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f000008e60000013d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220110009c000015c70000213d0000083201000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f000008b301000041000000c40010043f0000090e01000041000020690001043000000000020004160000006403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000008220320009c000015c70000213d0000002401100370000000000101043b000008220110009c000015c70000213d00000000002004350000000301000039000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000200041100000822022001970000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000101041a000000010200008a000000000221004b00000a9f0000613d00000044020000390000000202200367000000000202043b000000000121004b00000a9f0000813d000000400100043d00000044021000390000090a03000041000000000032043500000024021000390000001d0300003900000c280000013d0000000001000416000000000101004b000015c70000c13d0000001201000039000000800010043f0000089501000041000020680001042e0000000001000416000000000101004b000015c70000c13d0000001101000039000008360000013d0000000001000416000000000101004b000015c70000c13d206719440000040f000007bf0000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000501043b000008220150009c000015c70000213d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d000000000105004b0000098f0000c13d0000083201000041000000800010043f0000002001000039000000840010043f0000001301000039000000a40010043f0000091001000041000000c40010043f0000090e01000041000020690001043000000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000c00000001001d000008220110009c000015c70000213d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d0000090c01000041000000800010043f0000000001000410000000840010043f00000000010004140000000c02000029000000040320008c0000099e0000c13d0000000103000031000000200130008c00000000040300190000002004008039000009c90000013d0000000001000416000000000101004b000015c70000c13d0000800b01000039000000040300003900000000040004150000000f0440008a0000000504400210000008c9020000412067203e0000040f000c00000001001d206719f30000040f000000400100043d0000000c0200002900000000002104350000081b020000410000081b0310009c000000000102801900000040011002100000089f011001c7000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d0000000401100370000000000101043b0000001802000039000000000012041b000000800010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008b7011001c70000800d020000390000000103000039000008b8040000412067205d0000040f0000000101200190000015c70000613d0000000001000019000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d20671e1a0000040f000000800010043f0000089501000041000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d000000e002000039000c00000002001d000000400020043f000000800000043f000000a00000043f000000c00000043f00000000001004350000000f01000039000000200010043f00000040020000390000000001000019206720280000040f000b00000001001d0000000c01000029206716480000040f0000000b01000029000000000101041a000000ff021001900000000002000019000000010200c039000000e00020043f00000008031002700000089d03300197000001000030043f00000080011002700000089d01100197000001200010043f000000400100043d0000000002210436000001000300043d0000089d033001970000000000320435000001200200043d0000089d02200197000000400310003900000000002304350000081b020000410000081b0310009c000000000102801900000040011002100000089e011001c7000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000201043b000000000302041a000000000103004b0000000001000019000007bf0000613d000c00000003001d00000000002004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000c020000290000000001120019000000010110008a000000000101041a0000002001100270000007bf0000013d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000008220320009c000015c70000213d0000002401100370000000000101043b000c00000001001d000008220110009c000015c70000213d00000000002004350000000301000039000000200010043f00000040020000390000000001000019206720280000040f0000000c02000029206716f20000040f000000000101041a000007bf0000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220110009c000015c70000213d0000001801000039000008360000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d000000000200041a000000100220027000000822022001970000000003000411000000000232004b000008740000c13d000000000201004b00000a340000c13d0000083201000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000089601000041000000c40010043f0000089701000041000000e40010043f0000089801000041000020690001043000000000020004160000002404b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008290210009c000015c70000213d000000040110003900000000020b0019206716660000040f000c00000001001d206716c20000040f0000000c0100002920671e680000040f0000000001000019000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000000c002000039000000400020043f000000800000043f000000a00000043f0000001902000039000000000302041a000000000331004b0000092e0000813d0000000000200435000008a20110004120671e550000040f000000400200043d000c00000002001d206716bb0000040f0000081b010000410000000c030000290000081b0230009c000000000301801900000040013002100000089a011001c7000020680001042e0000000001000416000000000101004b000015c70000c13d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d000008be010000410000000000100439000000000100041000000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800a02000039206720620000040f0000000102200190000015790000613d000000000701043b0000000102000039000000000302041a00000000010004140000082204300197000000040340008c0000097d0000c13d000000010100003100000c0f0000013d0000000001000416000000000101004b000015c70000c13d0000001303000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f0000000105500190000001450000c13d000000800010043f000000000404004b0000095b0000613d0000000000300435000000000201004b0000000002000019000009610000613d0000089b030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000007980000413d000009610000013d0000000001000416000000000101004b000015c70000c13d000000c001000039000000400010043f0000001f01000039000000800010043f000008c401000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e002000039206715eb0000040f000000c00110008a0000081b020000410000081b0310009c00000000010280190000006001100210000008c5011001c7000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d20671d7b0000040f000000400200043d00000000001204350000081b010000410000081b0320009c000000000201801900000040012002100000089f011001c7000020680001042e0000000001000416000000000101004b000015c70000c13d00000015010000390000081d0000013d0000000001000416000000000101004b000015c70000c13d00000010010000390000081d0000013d00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002401100370000000000101043b000900000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000008e00210009c00000a370000413d000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e3030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c7000020690001043000000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d000000000010043500000002010000390000082d0000013d00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000b01000039000000200010043f00000040020000390000000001000019206720280000040f000000000101041a0000082201100197000000800010043f0000089501000041000020680001042e00000000020004160000002403b0008c000015c70000413d000000000202004b000015c70000c13d0000000401100370000000000101043b000008220210009c000015c70000213d00000000001004350000000901000039000000200010043f00000040020000390000000001000019206720280000040f000008360000013d0000000001000416000000000101004b000015c70000c13d0000001a01000039000000000101041a000000800010043f0000089501000041000020680001042e00000000020004160000004403b0008c000015c70000413d000000000202004b000015c70000c13d0000000402100370000000000202043b000c00000002001d000008220220009c000015c70000213d0000002401100370000000000301043b000000000100041a000000100110027000000822011001970000000002000411000000000121004b000008740000c13d000b00000003001d0000000c0100002900000000001004350000000f01000039000a00000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d000008d50320009c0000007d0000213d000000000101043b0000006003200039000000400030043f000000000301041a00000080013002700000089d0110019700000040042000390000000000140435000000ff043001900000000001000019000000010100c039000000000112043600000008023002700000089d022001970000000000210435000000000204004b00000df80000c13d000000400100043d0000004402100039000008df0300004100000df00000013d0000083201000041000000800010043f0000002001000039000000840010043f000000a40010043f000008c601000041000000c40010043f0000090e0100004100002069000104300000000001000416000000000101004b000015c70000c13d00000000010b0019206716140000040f00000000060100190000000007020019000b00000007001d0000000008030019000a00000008001d000900000004001d000800000005001d000000400100043d000c00000001001d0000002001100039000700000001001d00000000020600190000000003070019000000000408001920671f1a0000040f0000000c030000290000000002310049000000200120008a00000000001304350000000001030019206716530000040f0000000c0100002900000000020104330000000701000029206720280000040f000c00000001001d00000000030000310000000901000029000000080200002920671f220000040f00000000020100190000000c0100002920671fc60000040f0000000b010000290000000a0200002920671f4a0000040f0000000001000019000020680001042e0000000001000416000000000101004b000015c70000c13d000000000100041a00000010011002700000081e0000013d0000000001000416000000000101004b000015c70000c13d0000000503000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f0000000105500190000001450000c13d000000800010043f000000000404004b0000095b0000613d0000000000300435000000000201004b0000000002000019000009610000613d00000911030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000412004b000008c60000413d000009610000013d00000020020000390000000004000019000001a0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000008d00000413d000000000363004b000008e30000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001a0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000b04000029000000000014041b000001e00500043d000008290150009c0000007d0000213d0000000604000039000000000104041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000001450000c13d000000200130008c000009180000413d000900000003001d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d0000000a050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000009010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000b04000029000009180000813d000000000002041b0000000102200039000000000312004b000009140000413d0000001f0150008c000009340000a13d000a00000005001d000b00000004001d00000000004004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000200200008a0000000a060000290000000003260170000000000101043b00000aa60000c13d000000200200003900000ab00000013d000008a50100004100000000001004350000003201000039000000040010043f000008a6010000410000206900010430000000000105004b0000000001000019000009380000613d000002000100043d0000000302500210000000010300008a000000000223022f000000000232013f000000000121016f0000000102500210000000000121019f00000abe0000013d0000095b0000013d000000ff0210018f000000200320008c000009860000413d000008d00100004100000000001704350000081b010000410000081b0270009c00000000070180190000004001700210000008d1011001c700002069000104300000000001030019000b00000003001d2067163d0000040f0000000b030000290000002001300039000008e10200004100000000002104350000001d0100003900000000001304350000000002030019000000400100043d000c00000001001d206715fe0000040f0000000c040000290000096a0000013d000001000300008a000000000232016f000000a00020043f000000000101004b0000002002000039000000000200601900000020022000390000008001000039000c00000001001d206716530000040f000000400100043d000b00000001001d0000000c02000029206715fe0000040f0000000b0400002900000000014100490000081b020000410000081b0310009c00000000010280190000081b0340009c000000000402801900000040024002100000006001100210000000000121019f000020680001042e0000081b010000410000081b0250009c0000000005018019000000c001500210000000000203004b000c00000003001d000009e80000c13d0000000002040019000009eb0000013d0000081b020000410000081b0310009c0000000001028019000000c001100210000000000207004b000c00000007001d00000c050000c13d000000000204001900000c090000013d000008a40370009c0000007d0000213d0000004003700039000000400030043f00000020037000390000000000130435000b00000007001d000000000027043500000bd30000013d0000001001000039000000000201041a0000082402200197000000000252019f000000000021041b0000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000821011001c70000800d0200003900000002030000390000090f040000410000067f0000013d0000081b040000410000081b0310009c0000000001048019000000c0011002100000090d011001c7206720620000040f000000000301001900000060033002700000081b03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000009b60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000009ae0000413d000000000705004b000009c50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000d030000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000015c70000413d0000000101000039000000000101041a000000800300043d000b00000003001d00000822021001970000000c0100002920671a230000040f000000400100043d0000000b0200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d0200003900000002030000390000089c040000410000000c050000290000067f0000013d00000821011001c7000080090200003900000000050000192067205d0000040f0000000c030000290003000000010355000000000401001900000060044002700001081b0040019d0000081b08400197000000000408004b00000a060000c13d000000400100043d000000010220019000000c230000613d00000000003104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d020000390000000103000039000008c1040000410000067f0000013d000008290480009c0000007d0000213d0000001f04800039000000200500008a000000000454016f0000003f04400039000000000454016f000000400500043d0000000004450019000000000654004b00000000060000190000000106004039000008290740009c0000007d0000213d00000001066001900000007d0000c13d000000400040043f0000001f0480018f0000000005850436000000050980027200000a240000613d000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000796004b00000a1c0000413d000000000604004b000009f40000613d0000000506900210000000000161034f00000000066500190000000304400210000000000506043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000160435000009f40000013d206716da0000040f0000000001000019000020680001042e000000090110006b00000a9b0000813d0000000c0100002900000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000800000001001d000000000101041a000b00000001001d000000060110008c00000e3c0000413d0000000b050000290000008001500270000008cb0250009c0000000001054019000008cb0250009c0000008002000039000000000200401900000040032001bf000008270410009c00000000020380190000004003100270000008270410009c000000000103801900000020032001bf000008cc0410009c00000000020380190000002003100270000008cc0410009c000000000103801900000010032001bf000008cd0410009c00000000020380190000001003100270000008cd0410009c0000000001038019000001000310008c00000008022080390000000801108270000000100310008c00000004022080390000000401108270000000040310008c00000002022080390000000201108270000000010110008c00000001022020390000000101200270000000000215022f000000010110020f0000000001210019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c00000a950000413d00000001011002700000000b321000f90000000001120019000000020210008c000012790000813d000008a50100004100000000001004350000001201000039000000040010043f000008a6010000410000206900010430000000400100043d0000004402100039000008e40300004100000aa20000013d000000400100043d0000004402100039000008b30300004100000000003204350000002402100039000000190300003900000c280000013d00000020020000390000000004000019000001e0052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b00000aa80000413d000000000363004b00000abb0000813d0000000303600210000000f80330018f000000010400008a000000000334022f000000000343013f000001e0022000390000000002020433000000000232016f000000000021041b000000010160021000000001011001bf0000000b04000029000000000014041b000001600100043d000000200210008c00000ae50000413d000008290210009c0000007d0000213d0000000702000039000000000402041a000000010340019000000001054002700000007f0350018f000000000305c0190000001f0530008c00000000050000190000000105002039000000000454013f0000000104400190000001450000c13d000000200430008c00000ade0000413d0000001f0330003900000005053002700000082a035000410000001f041000390000000504400270000000000554004b00000ade0000813d0000082a04400041000000000004041b0000000104400039000000000534004b00000ada0000413d0000000000200435000000200300008a000000000431017000000d260000c13d00000180050000390000082a0300004100000d330000013d00000003021002100000010002200089000000010300008a00000000022301cf000000000301004b0000000002006019000001800300043d000000000223016f000000000212019f000001200020043f000002200200043d000000200320008c00000b150000413d000008290320009c0000007d0000213d0000000803000039000000000503041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f0000000105500190000001450000c13d000000200540008c00000b0e0000413d0000001f0440003900000005064002700000082b046000410000001f052000390000000505500270000000000665004b00000b0e0000813d0000082b05500041000000000005041b0000000105500039000000000645004b00000b0a0000413d0000000000300435000000200400008a000000000542017000000e200000c13d00000240060000390000082b0400004100000e2d0000013d00000003032002100000010003300089000000010400008a00000000033401cf000000000402004b0000000003006019000002400400043d000000000334016f000000000223019f000001400020043f0000081b0400004100000000020004140000081b0320009c00000000020480190000081b0310009c00000000010480190000006001100210000000c002200210000000000121019f0000082c011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000b00000001001d000000e00010043f000002200100043d00000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000006001100210000000c002200210000000000121019f0000082d011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000a00000001001d000001000010043f0000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000a00010043f000000400300043d0000008002300039000000000012043500000060013000390000000a02000029000000000021043500000040013000390000000b020000290000000000210435000000a001000039000900000001001d0000000001130436000000a0023000390000000004000410000a00000004001d000000000042043500000830020000410000000000210435000b00000003001d000008310230009c0000007d0000213d0000000b04000029000000c002400039000800000002001d000000400020043f0000081b020000410000081b0310009c0000000001028019000000400110021000000000030404330000081b0430009c00000000030280190000006003300210000000000113019f00000000030004140000081b0430009c0000000003028019000000c002300210000000000112019f00000821011001c70000801002000039206720620000040f00000001022001900000000c03000029000015c70000613d000000000101043b000000800010043f0000000a02000029000000c00020043f0000000e02000039000000000032041b000000000200041a0000ff0003200190000010140000c13d000000ff0320018f000000ff0330008c00000ba10000613d000000ff012001bf000000000010041b000000ff01000039000000400200043d00000000001204350000081b0100004100000000030004140000081b0430009c00000000030180190000081b0420009c00000000020180190000004001200210000000c002300210000000000121019f00000828011001c70000800d02000039000000010300003900000836040000412067205d0000040f0000000101200190000015c70000613d000000c00100043d000a00000001001d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a0001004430000004001000039000001c0001004430000000a01000029000001e0001004430000006001000039000000e00300043d000002000010044300000220003004430000008001000039000001000300043d00000240001004430000026000300443000001200100043d00000009030000290000028000300443000002a000100443000000c001000039000001400300043d000002c000100443000002e0003004430000010000200443000000070100003900000120001004430000083701000041000020680001042e000001000400008a000000000343016f0000000000320435000000000101004b000000200300003900000000030060190000003f01300039000000200200008a000000000221016f0000000001720019000000000221004b00000000020000190000000102004039000008290310009c0000007d0000213d00000001022001900000007d0000c13d000b00000007001d000000400010043f000008ab0100004100000000001004390000000c010000290000000400100443000000c00100003900000024001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000400200043d000000000101043b000000ff0310008c00000e150000c13d0000000805000039000000000405041a000000010640019000000001034002700000007f0130018f000000000103c0190000001f0310008c00000000030000190000000103002039000000000334013f00000001033001900000000b08000029000001450000c13d0000000003120436000000000606004b00000ebd0000613d0000000000500435000000000401004b000000000400001900000ec30000613d0000082b0500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b00000bfd0000413d00000ec30000013d00000821011001c70000800902000039000000000307001900000000050000192067205d0000040f0000000c07000029000300000001035500000060011002700001081b0010019d0000081b01100197000000000301004b00000c340000c13d000000400100043d000000010220019000000c230000613d00000000007104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d020000390000000103000039000008c1040000410000067f0000013d0000004402100039000008c0030000410000000000320435000000240210003900000010030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c70000206900010430000008290310009c0000007d0000213d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000008290630009c0000007d0000213d00000001055001900000007d0000c13d0000000009070019000000400030043f0000001f0310018f00000000041404360000000305000367000000050110027200000c540000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b00000c4c0000413d000000000603004b000000000709001900000c110000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f000000000031043500000c110000013d0000008001200039000000000031043500000060012000390000000a03000029000000000031043500000040012000390000000c03000029000000000031043500000008010000290000000001120436000008b9030000410000000000310435000008ba0320009c0000007d0000213d000000a003200039000000400030043f0000081b040000410000081b0310009c0000000001048019000000400110021000000000020204330000081b0320009c00000000020480190000006002200210000000000112019f00000002020003670000008403200370000000000303043b000700000003001d000000a402200370000000000202043b000b00000002001d00000000020004140000081b0320009c0000000002048019000000c002200210000000000112019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000500000001001d000008ab0100004100000000001004390000000001000412000600000001001d00000004001004430000004001000039000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b00000822011001970000000002000410000300000002001d000000000112004b00000f3d0000c13d000008ab01000041000000000010043900000006010000290000000400100443000000200100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000400000001001d0000082e01000041000000000010043900000000010004140000081b0210009c0000081b01008041000000c0011002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000040110006c00000f3d0000c13d000008ab0100004100000000001004390000000601000029000000040010044300000024000004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d00000f980000013d00000019010000390000000000140435000008b3010000410000000000120435000008b1013001c700002069000104300000000003000019000000000423004b00000cf90000813d000000010400008a00000ce50000013d0000000002050019000000000523004b00000cf90000813d000000000523016f000000000623013f00000001066002700000000005560019000000000665004b000000000600001900000001060040390000000106600190000003e00000c13d0000000000100435000008ce06500041000000000606041a0000081b06600197000000000676004b00000ce20000213d000000000345004b000003e00000613d0000000103500039000000000523004b00000ce50000413d000000000302004b000000000300001900000d000000613d0000000000100435000008cf01200041000000000101041a0000002003100270000000400100043d0000000000310435000006600000013d000000400200043d0000001f0430018f000000050530027200000d100000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d080000413d000000000604004b00000d1f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000081b010000410000081b0420009c000000000201801900000040012002100000006002300210000000000121019f00002069000104300000082a0300004100000020060000390000000005000019000000000706001900000160067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b00000d290000413d0000018005700039000000000414004b00000d3d0000813d0000000304100210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010310021000000001033001bf000000000032041b000000ff0200003900000aee0000013d00000020020000390000000002210436000000800300043d00000000003204350000004002100039000000000403004b00000d560000613d000000a004000039000000000500001900000000460404340000000076060434000008a30660019700000000066204360000000007070433000008a307700197000000000076043500000040022000390000000105500039000000000635004b00000d4b0000413d00000000021200490000081b030000410000081b0420009c00000000020380190000081b0410009c000000000103801900000040011002100000006002200210000000000112019f000020680001042e0000000c0100002900000000001004350000000901000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000301041a0000000102300039000000000021041b00000002010003670000004402100370000000000402043b000000400200043d000000c0052000390000000a060000290000000000650435000000a00520003900000000003504350000008003200039000000000043043500000060032000390000000b04000029000000000043043500000040032000390000000c0400002900000000004304350000002003200039000008a9040000410000000000430435000000c0040000390000000000420435000008aa0420009c0000007d0000213d000000e004200039000000400040043f0000081b050000410000081b0430009c0000000003058019000000400330021000000000020204330000081b0420009c00000000020580190000006002200210000000000232019f000000a403100370000000000303043b000a00000003001d000000c401100370000000000101043b000b00000001001d00000000010004140000081b0310009c0000000001058019000000c001100210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000600000001001d000008ab0100004100000000001004390000000001000412000700000001001d00000004001004430000004001000039000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b00000822011001970000000002000410000400000002001d000000000112004b000011010000c13d000008ab01000041000000000010043900000007010000290000000400100443000000200100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000500000001001d0000082e01000041000000000010043900000000010004140000081b0210009c0000081b01008041000000c0011002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000050110006c000011010000c13d000008ab0100004100000000001004390000000701000029000000040010044300000024000004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d0000115c0000013d000000400100043d0000004402100039000008c603000041000000000032043500000832020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000c2d0000013d000008d6020000410000000b06000029000000000306004b00000000030000190000000003024019000008d604600197000000000504004b000000000200a019000008d60440009c000000000203c019000000000202004b00000e070000c13d000000000206004b000900000006001d00000e0b0000c13d000008d60260009c000003e00000613d0000000b02000029000900000020005100000009020000290000089d0220009c00000e770000413d000000400100043d0000004402100039000008de0300004100000000003204350000002402100039000000180300003900000c280000013d000000ff0310018f000000200430008c00000e6c0000413d000008d00100004100000000001204350000081b010000410000081b0320009c00000000020180190000004001200210000008d1011001c700002069000104300000082b0400004100000020070000390000000006000019000000000807001900000220078000390000000007070433000000000074041b000000200780003900000001044000390000002006600039000000000956004b00000e230000413d0000024006800039000000000525004b00000e370000813d0000000305200210000000f80550018f000000010700008a000000000557022f000000000575013f0000000006060433000000000556016f000000000054041b000000010220021000000001022001bf000000000023041b000000ff0200003900000b1e0000013d00000000030000190000000b0130006c00000ea90000813d000780100000003d0000000b0200002900000e460000013d00000000020300190000000a03000029000000000123004b00000eaa0000813d000000000123016f000b00000002001d000a00000003001d000000000223013f00000001022002700000000003120019000000000123004b000000000100001900000001010040390000000101100190000003e00000c13d000c00000003001d0000000801000029000000000010043500000000010004140000081b0210009c0000081b01008041000000c00110021000000828011001c70000000702000029206720620000040f0000000102200190000015c70000613d000000000101043b0000000c030000290000000001310019000000000101041a0000081b01100197000000090110006c00000e420000213d000000010100008a000000000113004b000003e00000613d00000001033000390000000b02000029000000000123004b00000e460000413d00000eaa0000013d000008a40420009c0000000b080000290000007d0000213d0000004004200039000000400040043f000000200420003900000000001404350000000000320435000000400100043d000c00000001001d00000ed10000013d000000010200008a000008d6040000410000000b03000029000000000223004b00000000020000190000000002042019000008d603300197000008d60530009c0000000004008019000008d603300167000008d60330009c000000000402c0190000001102000039000000000302041a000000000404004b00000f310000613d0000000901300029000000000331004b000000000300001900000001030040390000000103300190000003e00000c13d000000000012041b0000000c0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a00000008032002700000089d0330019700000009033000290000089d0430009c000003e00000213d000008d7022001970000000803300210000008d803300197000000000223019f000000000021041b000010ee0000013d0000000b02000029000b00000002001d000000000102004b0000000001000019000007bf0000613d000000080100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b0000000b02000029000006ed0000013d000001000500008a000000000454016f0000000000430435000000000101004b000000200400003900000000040060190000003f01400039000000200300008a000000000131016f0000000003210019000000000113004b00000000010000190000000101004039000c00000003001d000008290330009c0000007d0000213d00000001011001900000007d0000c13d0000000c01000029000000400010043f0000000c01000029000008d20110009c0000007d0000213d0000000c030000290000002001300039000700000001001d000000400010043f0000000000030435000000400500043d0000002001500039000000e0030000390000000000310435000008d30100004100000000001504350000000041080434000000e0035000390000000000130435000b00000005001d0000010003500039000000000501004b00000eee0000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000615004b00000ee70000413d000000000413001900000000000404350000001f01100039000a0020000000920000000a0110017f00000000031300190000000b0400002900000000014300490000004004400039000000000014043500000000160204340000000005630436000000000206004b00000f040000613d000000000200001900000000035200190000000004210019000000000404043300000000004304350000002002200039000000000362004b00000efd0000413d000900000005001d000800000006001d000000000165001900000000000104350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000b040000290000008002400039000000000300041000000000003204350000006002400039000000000012043500000008010000290000001f011000390000000a0110017f00000009011000290000000002410049000000c0034000390000000000230435000000a00240003900000000000204350000000c0200002900000000020204330000000001210436000000000302004b000009690000613d00000000030000190000000705000029000000005405043400000000014104360000000103300039000000000423004b00000f2b0000413d000009690000013d000000090430006c000010310000813d000000400100043d0000006402100039000008db0300004100000000003204350000004402100039000008dc03000041000000000032043500000024021000390000002703000039000007f60000013d000000400100043d000400000001001d00000020021000390000083001000041000200000002001d0000000000120435000008ab01000041000000000010043900000006010000290000000400100443000000600100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000000040200002900000040022000390000000000120435000008ab010000410000000000100439000000060100002900000004001004430000000801000029000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b0000000402000029000000600220003900000000001204350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000404000029000000a0024000390000000303000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000008310140009c0000007d0000213d0000000403000029000000c001300039000000400010043f0000081b0100004100000002040000290000081b0240009c0000000004018019000000400240021000000000030304330000081b0430009c00000000030180190000006003300210000000000223019f00000000030004140000081b0430009c0000000003018019000000c001300210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000400200043d000000220320003900000005040000290000000000430435000008ad030000410000000000320435000000020320003900000000001304350000081b0400004100000000010004140000081b0310009c00000000010480190000081b0320009c0008081b0000004500000000020480190000004002200210000000c001100210000000000112019f000008ae011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d0000081b0320009c00000008030000290000000003024019000800000003001d0000000b03000029000008af0330009c000012d70000a13d0000006401200039000008b40300004100000000003104350000004401200039000008b5030000410000000000310435000000240120003900000022030000390000000000310435000008320100004100000000001204350000000401200039000000200200003900000000002104350000000801000029000000400110021000000835011001c70000206900010430000000000302004b000000000300001900000fce0000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000343016f0000000102200210000000000423019f000010580000013d00000002020003670000000b0300002900000006050000290000000906000029000000000452034f000000000404043b000000200330003900000000004304350000002005500039000000000465004b00000fda0000413d0000001a02000039000000000202041a000600000002001d0000000b020000290000000002020433000000000202004b000010060000613d000980100000003d0000000003000019000c00000003001d00000005023002100000000a022000290000000002020433000000000321004b00000ff40000813d0000000000100435000000200020043f000000000100041400000ff70000013d0000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000000902000029206720620000040f0000000102200190000015c70000613d000000000101043b0000000c0300002900000001033000390000000b020000290000000002020433000000000223004b00000fea0000413d000000060110006c0000102a0000c13d0000000e01000039000c00000001001d000000000101041a000000020110008c000010920000c13d000000400100043d00000044021000390000090903000041000000000032043500000024021000390000001f0300003900000c280000013d0000083201000041000000080400002900000000001404350000000b03000029000001240130003900000833020000410000000000210435000001040130003900000834020000410000000000210435000000e40130003900000027020000390000000000210435000000c401300039000000200200003900000000002104350000081b010000410000081b0240009c0000000004018019000000400140021000000835011001c70000206900010430000000400100043d0000004402100039000008fe03000041000000000032043500000024021000390000000d0300003900000c280000013d00000000010104330000089d01100197000000090110006c000010ca0000813d000000400100043d0000006402100039000008d90300004100000000003204350000004402100039000008da03000041000000000032043500000024021000390000002e03000039000007f60000013d0000089b0300004100000020060000390000000005000019000000000706001900000080067000390000000006060433000000000063041b000000200670003900000001033000390000002005500039000000000845004b000010420000413d000000a005700039000000000424004b000010560000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b000000010220021000000001042001bf000000000041041b000000010540019000000001034002700000007f0230018f000000000203c0190000001f0320008c00000000030000190000000103002039000000000334013f0000000103300190000001450000c13d000000400300043d000000000505004b000010730000613d0000000000100435000000000102004b000010760000613d0000089b0100004100000000040000190000000005340019000000000601041a000000000065043500000001011000390000002004400039000000000524004b0000106b0000413d000010760000013d000001000100008a000000000114016f00000000001304350000081b040000410000081b0130009c000000000304801900000040013002100000081b0320009c00000000020480190000006002200210000000000112019f00000000020004140000081b0320009c0000000002048019000000c002200210000000000112019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000501043b00000000010004140000081b0210009c0000081b01008041000000c00110021000000821011001c70000800d020000390000000203000039000008c7040000410000067f0000013d00000002010000390000000c02000029000000000012041b00000008010000290000082201100197000b00000001001d00000000001004350000000f01000039000a00000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f00000007030000290009089d0030019b0000000102200190000015c70000613d000000000101043b000000000101041a00000008011002700000089d01100197000000090110006c000011f20000c13d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000101041a000000ff01100190000012970000c13d000000400100043d00000064021000390000090703000041000000000032043500000044021000390000090803000041000000000032043500000024021000390000002203000039000007f60000013d000000090130006a000000000012041b0000000c0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a00000008032002700000089d03300197000000090330006a0000089d0430009c000003e00000213d000008d7022001970000000803300210000008d803300197000000000223019f000000000021041b0000001001000039000000000101041a000000000200041a000008220110019700000010022002700000082202200197000000090300002920671a230000040f0000000c0100002920671b570000040f000000400100043d0000000b0200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d020000390000000203000039000008dd04000041000009e60000013d000000400100043d000500000001001d00000020021000390000083001000041000300000002001d0000000000120435000008ab01000041000000000010043900000007010000290000000400100443000000600100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b000000050200002900000040022000390000000000120435000008ab010000410000000000100439000000070100002900000004001004430000000801000029000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000015790000613d000000000101043b0000000502000029000000600220003900000000001204350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b0000000504000029000000a0024000390000000403000029000000000032043500000080024000390000000000120435000000a0010000390000000000140435000008310140009c0000007d0000213d0000000503000029000000c001300039000000400010043f0000081b0100004100000003040000290000081b0240009c0000000004018019000000400240021000000000030304330000081b0430009c00000000030180190000006003300210000000000223019f00000000030004140000081b0430009c0000000003018019000000c001300210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000400200043d000000220320003900000006040000290000000000430435000008ad030000410000000000320435000000020320003900000000001304350000081b0400004100000000010004140000081b0310009c00000000010480190000081b0320009c0008081b0000004500000000020480190000004002200210000000c001100210000000000112019f000008ae011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d0000081b0320009c00000008030000290000000003024019000800000003001d0000000b03000029000008af0330009c00000fb80000213d000000000101043b00000060032000390000000b04000029000000000043043500000040032000390000000a040000290000000000430435000000200320003900000009040000290000000000430435000000000012043500000000000004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000008020000290000004002200210000000000121019f000008b0011001c70000000102000039206720620000040f000000000301001900000060033002700000081b03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000011a40000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b0000119d0000413d000000000605004b000011b20000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013880000613d00000000010004330000082202100198000013150000613d000000400300043d000008320200004100000000002304350000000402300039000000200400003900000000004204350000000c0410014f00000044023000390000081b010000410000081b0530009c000000000103401900000024033000390000004001100210000008b1011001c70000082204400198000013b50000c13d00000019040000390000000000430435000008b30300004100000000003204350000206900010430000008d6050000410000000a0600002900000000072b0049000000400870008c00000000080000190000000008054019000008d607700197000000000907004b00000000090000190000000009052019000008d60770009c000000000908c019000000000709004b000015c70000c13d000000400700043d000008a40870009c0000007d0000213d0000004008700039000000400080043f000000000821034f000000000808043b000008a30980009c000015c70000213d00000000088704360000002009200039000000000991034f000000000909043b000008a30a90009c000015c70000213d0000002006600039000000000098043500000000007604350000004002200039000000000742004b000011d00000413d000001c20000013d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d000700000002001d000008d50220009c0000007d0000213d000000000101043b000000000101041a00000007030000290000006002300039000000400020043f00000020043000390000000902000029000600000004001d000000000024043500000001020000390000000000230435000000400230003900000080011002700000089d01100197000500000002001d00000000001204350000000b0100002900000000001004350000000a01000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d00000007020000290000000002020433000000000202004b000000000101043b000000000201041a000008ff02200197000000010220c1bf000000060300002900000000030304330000000803300210000008d803300197000000000232019f0000000503000029000000000303043300000080033002100000090003300197000000000232019f000000000021041b000000400100043d0000000902000029000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d02000039000000020300003900000901040000410000000b050000292067205d0000040f0000000101200190000015c70000613d000000080100002920671b570000040f000010ae0000013d00000000010004150000000e0110008a0005000500100218000e00000000001d000008e5010000410000000000100439000000000100041000000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800202000039206720620000040f0000000102200190000015790000613d000000000101043b000000000101004b000013190000c13d0000000701000029000000ff0110018f000000010110008c0000000001000019000000010100603900000005020000290000000502200270000000000201001f0000131c0000c13d000001000100008a000000000200041a000000000112016f00000001011001bf000000040200006b000001dd0000613d000300010000003d000001e00000013d000000010300008a000000000334004b0000000c07000029000003e00000613d0000000103400039000000000423004b00000ce00000413d00000cf90000013d00000001041002700000000b214000f9000000000214004b0000000004018019000c00000004001d0000000b0140006b000003e00000413d000000080100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000015c70000613d0000000c030000290000000b02300069000000000101043b0000000001210019000000000101041a0000081b01100197000000090110006c000013830000a13d0000000003000019000b00000002001d00000e3d0000013d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000400200043d000008d50320009c0000007d0000213d000000000101043b0000006003200039000000400030043f000000000101041a00000080031002700000089d033001970000004004200039000900000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000089d01100197000700000001001d0000000000120435000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d0000001903000039000000000203041a000000000101043b0000001504000039000000000404041a00000822044001980000139d0000613d0000001705000039000000000505041a000000080550014f000008220550019700000000544500d9000000000541004b0000139c0000813d000000000102004b0000000004000019000003e00000c13d000013bb0000013d000000000101043b00000060032000390000000b040000290000000000430435000000400320003900000007040000290000000000430435000000200320003900000009040000290000000000430435000000000012043500000000000004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000008020000290000004002200210000000000121019f000008b0011001c70000000102000039206720620000040f000000000301001900000060033002700000081b03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000012ff0000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000012f80000413d000000000605004b0000130d0000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f000300000001035500000001022001900000135b0000613d0000000001000433000b00000001001d00000822011001980000136b0000c13d000000400100043d0000004402100039000008bc0300004100000e110000013d00000005010000290000000501100270000000000100001f000000400100043d0000006402100039000008e60300004100000000003204350000004402100039000008e7030000410000103b0000013d0000000103000039000000000103041a00000824011001970000000602000029000000000121019f000000000013041b000000400100043d00000000002104350000081b0500004100000000020004140000081b0420009c00000000020580190000081b0410009c00000000010580190000004001100210000000c002200210000000000112019f00000828011001c70000800d0200003900000826040000412067205d0000040f0000000101200190000015c70000613d00002710020000390000001801000039000200000001001d000000000021041b000000400100043d000500000002001d000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d020000390000000103000039000008b8040000412067205d0000040f0000000101200190000015c70000613d000000000100041a0000ff0001100190000001ea0000613d0000000c010000290000082201100198000013ac0000c13d000000400100043d0000004402100039000008fa0300004100000df00000013d000000400200043d0000001f0430018f0000000505300272000013680000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013600000413d000000000604004b00000d1f0000613d00000d120000013d00000000001004350000000901000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a0000000103200039000000000031041b0000000a0120006b000013980000c13d0000000b010000290000000c02000029206717400000040f0000000001000019000020680001042e000000010100008a000000000112004b000003e00000613d000000010320003900000e3d0000013d000000400200043d0000001f0430018f0000000505300272000013950000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000138d0000413d000000000604004b00000d1f0000613d00000d120000013d000000400100043d0000004402100039000008bb0300004100000aa20000013d0000000001410049000000000402004b0000000004000019000013bb0000613d0000000000300435000000000302004b000013ba0000613d000000010420008a0000090202200041000000000302041a000008a302300197000000000221004b0000000002040019000013a10000a13d0000008004300270000013bb0000013d000000070200006b0000141a0000c13d000000400100043d0000004402100039000008f90300004100000000003204350000002402100039000000170300003900000c280000013d0000001e040000390000000000430435000008b2030000410000000000320435000020690001043000000000040000190000001401000039000000000101041a000000000201004b00000a950000613d00000007324000b900000000211200d9000000090200002900000000020204330000089d022001970000000002210049000000000112004b00000000010000190000000101002039000000000101004b000000000200c0190009089d0020019c000013d60000c13d000000400100043d00000064021000390000090503000041000000000032043500000044021000390000090603000041000000000032043500000024021000390000002f03000039000007f60000013d0000000b0100002900000000001004350000000a01000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000015c70000613d000000000101043b000000000201041a00000080032002700000089d0330019700000009033000290000089d0430009c000003e00000213d000009030220019700000080033002100000090003300197000000000223019f000000000021041b0000001201000039000000000301041a0000000902300029000000000332004b000000000300001900000001030040390000000103300190000003e00000c13d000000000021041b000000080100002920671b570000040f0000001001000039000000000101041a00000822011001970000000802000029000000090300002920671a230000040f000000400100043d000000090200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f00000828011001c70000800d02000039000000020300003900000904040000410000000b050000292067205d0000040f0000000101200190000015c70000613d00000001010000390000000c02000029000000000012041b0000000001000019000020680001042e0000001002000039000000000302041a0000082403300197000000000113019f000000000012041b0000001101000039000c00000001001d0000000703000029000000000031041b000000800300043d000008290130009c0000007d0000213d0000001301000039000000000501041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f0000000105500190000001450000c13d000000200540008c000014440000413d0000001f0530003900000005055002700000089b065000410000089b05000041000000200730008c000000000506801900000000001004350000001f0440003900000005044002700000089b04400041000000000645004b000014440000813d000000000005041b0000000105500039000000000645004b000014400000413d000000200430008c0000144c0000413d00000000001004350000000b06300180000014580000c13d00000020050000390000089b04000041000014630000013d000000000403004b0000000004000019000014700000613d0000000304300210000000010500008a000000000445022f000000000454013f000000a00500043d000000000445016f0000000103300210000000000434019f000014700000013d0000089b040000410000002005000039000000000700001900000080085000390000000008080433000000000084041b000000200550003900000001044000390000002007700039000000000867004b0000145b0000413d000000000636004b0000146e0000813d0000000306300210000000f80660018f000000010700008a000000000667022f000000000676013f00000080055000390000000005050433000000000565016f000000000054041b000000010330021000000001043001bf000000000041041b0000001403000039000100000003001d0000000505000029000000000053041b000000000502041a0000000c02000029000000000602041a000000400200043d000000200320003900000060070000390000000000730435000000010740019000000001084002700000007f0380018f000000000308c01900000000006204350000001f0630008c00000000060000190000000106002039000000000664013f00000822055001970000000106600190000001450000c13d000000600620003900000000003604350000008006200039000000000707004b0000149b0000613d0000000000100435000000000103004b0000000001000019000014a10000613d0000089b0400004100000000010000190000000007610019000000000804041a000000000087043500000001044000390000002001100039000000000731004b000014930000413d000014a10000013d000001000100008a000000000114016f0000000000160435000000000103004b000000200100003900000000010060190000004003200039000000050400002900000000004304350000081b030000410000081b0420009c0000000002038019000000400220021000000080011000390000081b0410009c00000000010380190000006001100210000000000121019f00000000020004140000081b0420009c0000000002038019000000c002200210000000000121019f00000821011001c70000800d020000390000000203000039000008e9040000412067205d0000040f0000000101200190000015c70000613d0000000401000029000b08220010019b000000000100041a0000ff0001100190000001ea0000613d000000080100002900000822011001980000001602000039000000000302041a0000082403300197000000000313019f000000000032041b0000000002000019000014c80000613d00000822321001290000001504000039000000000304041a0000082403300197000000000223019f000800000004001d000000000024041b000000400200043d00000000001204350000081b0100004100000000030004140000081b0430009c00000000030180190000081b0420009c00000000020180190000004001200210000000c002300210000000000112019f00000828011001c70000800d020000390000000103000039000008ea040000412067205d0000040f0000000101200190000015c70000613d0000000801000029000000000101041a0000082201100198000014ef0000c13d0000000a010000290000000001010433000000000101004b000014f80000c13d000000400100043d0000004402100039000008f803000041000000000032043500000024021000390000000c0300002900000c280000013d0000000b0100006b000015530000c13d000000400100043d0000004402100039000008ec0300004100000000003204350000002402100039000000020300002900000c280000013d0000001902000039000000000102041a000700000002001d000000000002041b000000000201004b000015080000613d00000007020000290000000000200435000008a201100041000008ed0210009c000015080000413d000008a202000041000000000002041b0000000102200039000000000312004b000015040000413d0000000a010000290000000001010433000000000101004b000c00000000001d0000157a0000c13d0000000101000029000000000101041a0000000c0110006b000015c90000c13d000000000100041a0000ff0001100190000001ea0000613d0000001a010000390000000402000029000000000021041b000000400100043d00000000002104350000081b0400004100000000020004140000081b0320009c00000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d020000390000000103000039000c00000003001d000008d4040000412067205d0000040f0000000101200190000015c70000613d000000060600002900000010016002100000081f01100197000000000200041a0000082003200197000000000113019f000000000010041b00000000010004140000081b0310009c0000081b01008041000000c00110021000000821011001c7000000100220027000000822052001970000800d02000039000000030300003900000823040000412067205d0000040f0000000101200190000015c70000613d000000030100006b000006820000c13d000000000200041a000008e801200197000000000010041b000000400100043d0000000c0300002900000000003104350000081b0200004100000000050004140000081b0450009c00000000050280190000081b0410009c00000000010280190000004001100210000000c002500210000000000112019f00000828011001c70000800d0200003900000836040000410000067f0000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000000201004b000003e00000613d000008eb020000410000000000200439000000010110008a00000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800b02000039206720620000040f0000000102200190000015790000613d000000000101043b000000040110014f00000822011001970000001702000039000000000302041a0000082403300197000000000113019f000000000012041b000014e40000013d000000000001042f0005800d0000003d000b00000000001d000000000200001900000000040000190000000b0100002900000005011002100000000901100029000000000301043300000020013000390000000005010433000c08a30050019c000015d30000613d0000000005030433000808a30050019b000000080440006b000015da0000a13d0000000c0220006b000015e10000a13d0000000702000029000000000202041a000008290420009c0000007d0000213d00000001042000390000000705000029000000000045041b00000000005004350000000003030433000008a30330019700000000010104330000008001100210000000000131019f000008a202200041000000000012041b000000400100043d00000020021000390000000c0300002900000000003204350000000802000029000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f000008a8011001c700000002030000390000000502000029000008f1040000410000000b050000292067205d0000040f0000000101200190000015c70000613d0000000b02000029000b00010020003d0000000a0100002900000000010104330000000b0110006b0000000c0200002900000008040000290000157e0000413d0000000801000029000008f20110009c0000150d0000413d000000400100043d0000006402100039000008f30300004100000000003204350000004402100039000008f403000041000000000032043500000024021000390000002a03000039000007f60000013d00000000010000190000206900010430000000400100043d0000006402100039000008f60300004100000000003204350000004402100039000008f703000041000000000032043500000024021000390000002103000039000007f60000013d000000400100043d0000004402100039000008f503000041000000000032043500000024021000390000001c0300003900000c280000013d000000400100043d0000004402100039000008ee03000041000000000032043500000024021000390000001a0300003900000c280000013d000000400100043d0000006402100039000008ef0300004100000000003204350000004402100039000008f003000041000000000032043500000024021000390000002503000039000007f60000013d00000000430104340000000001320436000000000203004b000015f70000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000532004b000015f00000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000020030000390000000004310436000000003202043400000000002404350000004001100039000000000402004b0000160d0000613d000000000400001900000000051400190000000006430019000000000606043300000000006504350000002004400039000000000524004b000016060000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d000008d602000041000000830310008c00000000030000190000000003022019000008d604100197000000000504004b0000000002008019000008d60440009c000000000203c019000000000202004b0000163b0000613d00000002040003670000000402400370000000000602043b0000002402400370000000000202043b000008220320009c0000163b0000213d0000004403400370000000000303043b0000006405400370000000000705043b000008290570009c0000163b0000213d0000002305700039000000000515004b0000163b0000813d0000000405700039000000000454034f000000000504043b000008290450009c0000163b0000213d000000050850021000000024047000390000000007840019000000000117004b0000163b0000213d0000000001060019000000000001042d00000000010000190000206900010430000009120210009c000016420000813d0000004001100039000000400010043f000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000009130210009c0000164d0000813d0000006001100039000000400010043f000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000008290310009c000016600000213d0000000102200190000016600000c13d000000400010043f000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a601000041000020690001043000000000030100190000001f01300039000008d604000041000000000521004b00000000050000190000000005044019000008d606200197000008d601100197000000000761004b000000000400a019000000000161013f000008d60110009c000000000405c019000000000104004b000016b30000613d0000000204000367000000000134034f000000000501043b000008270150009c000016b50000813d00000005015002100000003f01100039000008a006100197000000400100043d0000000006610019000000000716004b00000000070000190000000107004039000008290860009c000016b50000213d0000000107700190000016b50000c13d000000400060043f0000000000510435000000060550021000000020033000390000000005530019000000000625004b000016b30000213d000000000653004b000016b20000813d000008d60600004100000000070100190000000008320049000000400980008c00000000090000190000000009064019000008d608800197000000000a08004b000000000a000019000000000a062019000008d60880009c000000000a09c01900000000080a004b000016b30000c13d000000400800043d000008a40980009c000016b50000213d0000004009800039000000400090043f000000000934034f000000000909043b000008a30a90009c000016b30000213d0000000009980436000000200a300039000000000aa4034f000000000a0a043b000008a30ba0009c000016b30000213d00000020077000390000000000a9043500000000008704350000004003300039000000000853004b000016910000413d000000000001042d00000000010000190000206900010430000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300000000031010434000008a30110019700000000011204360000000002030433000008a3022001970000000000210435000000000001042d000000000100041a000000100110027000000822011001970000000002000411000000000121004b000016c90000c13d000000000001042d000000400100043d0000004402100039000008c603000041000000000032043500000832020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c7000020690001043000000010021002100000081f02200197000000000300041a0000082004300197000000000224019f000000000020041b0000081b0200004100000000040004140000081b0540009c0000000004028019000000c002400210000008220610019700000821012001c7000000100230027000000822052001970000800d02000039000000030300003900000823040000412067205d0000040f0000000101200190000016f00000613d000000000001042d0000000001000019000020690001043000000822022001970000000000200435000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000017010000613d000000000101043b000000000001042d00000000010000190000206900010430000000400100043d000009120210009c0000170c0000813d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300001000000000002000000000301041a000100000002001d000000000223004b000017250000a13d00000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f00000001022001900000172b0000613d000000000101043b0000000101100029000000000001042d000008a50100004100000000001004350000003201000039000000040010043f000008a6010000410000206900010430000000000100001900002069000104300000000002010019000000400100043d000009120310009c0000173a0000813d0000004003100039000000400030043f000000000202041a0000002003100039000000200420027000000000004304350000081b022001970000000000210435000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300005000000000002000500000002001d0000082201100197000200000001001d00000000001004350000000b01000039000300000001001d000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f00000001022001900000178a0000613d000000000101043b000000000101041a000400000001001d0000000201000039000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f0000000403000029000408220030019b00000001022001900000178a0000613d000000000101043b000000000101041a000100000001001d0000000301000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f00000001022001900000178a0000613d00000005020000290000082207200197000000000101043b000000000201041a0000082402200197000000000272019f000000000021041b00000000010004140000081b0210009c0000081b01008041000000c00110021000000821011001c70000800d0200003900000004030000390000091404000041000000020500002900000004060000292067205d0000040f00000001012001900000178a0000613d0000000401000029000000050200002900000001030000292067178c0000040f000000000001042d000000000100001900002069000104300009000000000002000900000003001d00000822031001970000082201200197000700000001001d000800000003001d000000000113004b000019060000613d000000090100006b000019060000613d000000080100006b000018480000613d000000080100002900000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000201043b000000000102041a000600000001001d000000000101004b000019300000613d000500000002001d00000000002004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000400200043d000009120320009c000019330000813d000000000101043b0000004003200039000000400030043f000000060300002900030001003000920000000301100029000000000101041a0000081b03100197000000000332043600000020041002700000000000430435000600000004001d000000090140006c0000193e0000413d0000000001020433000400000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000004030000290000081b033001970000000102200190000019090000613d000000000101043b000008e00210009c0000190a0000813d0000000604000029000000090240006a000000000113004b000400000002001d000017f70000c13d000008990120009c000019110000213d000000050100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000301100029000000000201041a0000081b0220019700000004040000290000002003400210000000000232019f000000000021041b000018320000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000019090000613d000000000101043b000008ca0210009c0000190a0000213d000008cc0210009c00000004030000290000191b0000813d000009150230009c000019110000813d000000400400043d000008a40240009c000019330000213d0000004002400039000000400020043f0000000001140436000300000001001d00000000003104350000000501000029000000000201041a000008290120009c000019330000213d000200000004001d000100000002001d00000001012000390000000502000029000000000012041b00000000002004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000101100029000000020200002900000000020204330000081b02200197000000030300002900000000030304330000002003300210000000000223019f000000000021041b0000000404000029000000400100043d00000020021000390000000000420435000000060200002900000000002104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f000008a8011001c70000800d020000390000000203000039000009160400004100000008050000292067205d0000040f0000000101200190000019070000613d000000070100006b000019060000613d000000070100002900000000001004350000000c01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000301043b000000000203041a000000000102004b000800000003001d000018ab0000613d000600000002001d00000000003004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000400200043d000008a40320009c000019330000213d000000000101043b0000004003200039000000400030043f000000060300002900040001003000920000000401100029000000000101041a0000081b031001970000000003320436000000200410027000000000004304350000000901400029000900000001001d000600000004001d000000000141004b0000000001000019000000010100403900000001011001900000193e0000c13d0000000001020433000500000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000005030000290000081b033001970000000102200190000019090000613d000000000101043b000008ca0210009c0000190a0000213d000000000113004b000018b50000c13d0000000901000029000008990110009c0000000801000029000019110000213d00000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000401100029000000000201041a0000081b0220019700000009030000290000002003300210000000000232019f000018ee0000013d000000400100043d000008a40210009c000019330000213d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000600000000001d000018b50000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000019090000613d000000000101043b000008ca0210009c0000190a0000213d0000081b0210009c00000008030000290000191b0000213d0000000902000029000008990220009c000019110000213d000000400400043d000008a40240009c000019330000213d0000004002400039000000400020043f00000000021404360000000901000029000500000002001d0000000000120435000000000203041a000008290120009c000019330000213d000400000004001d000300000002001d0000000101200039000000000013041b00000000003004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c00120021000000828011001c70000801002000039206720620000040f0000000102200190000019070000613d000000000101043b0000000301100029000000040200002900000000020204330000081b02200197000000050300002900000000030304330000002003300210000000000223019f000000000021041b0000000604000029000000400100043d00000020021000390000000903000029000000000032043500000000004104350000081b0200004100000000030004140000081b0430009c00000000030280190000081b0410009c00000000010280190000004001100210000000c002300210000000000112019f000008a8011001c70000800d020000390000000203000039000009160400004100000007050000292067205d0000040f0000000101200190000019070000613d000000000001042d00000000010000190000206900010430000000000001042f000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e303000041000019210000013d000000400100043d00000064021000390000091703000041000000000032043500000044021000390000091803000041000000000032043500000024021000390000002703000039000019240000013d000000400100043d00000064021000390000091903000041000000000032043500000044021000390000091a030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000000400100043d000008a40210009c000019390000a13d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300000004002100039000000400020043f000000200210003900000000000204350000000000010435000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300004000000000002000008ab0100004100000000001004390000000001000412000300000001001d0000000400100443000000400100003900000024001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b00000822011001970000000002000410000200000002001d000000000112004b0000198d0000c13d000008ab01000041000000000010043900000003010000290000000400100443000000200100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b000400000001001d0000082e01000041000000000010043900000000010004140000081b0210009c0000081b01008041000000c0011002100000082f011001c70000800b02000039206720620000040f0000000102200190000019ea0000613d000000000101043b000000040110006c0000198d0000c13d000008ab0100004100000000001004390000000301000029000000040010044300000024000004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b000000000001042d000000400100043d000400000001001d00000020021000390000083001000041000100000002001d0000000000120435000008ab01000041000000000010043900000003010000290000000400100443000000600100003900000024001004430000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b000000040200002900000040022000390000000000120435000008ab010000410000000000100439000000030100002900000004001004430000008001000039000000240010044300000000010004140000081b0210009c0000081b01008041000000c001100210000008ac011001c70000800502000039206720620000040f0000000102200190000019ea0000613d000000000101043b0000000402000029000000600220003900000000001204350000082e0100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f0000000102200190000019ea0000613d000000000101043b0000000404000029000000a0024000390000000203000029000000000032043500000080024000390000000000120435000000a00100003900000000001404350000091b0140009c000019eb0000813d0000000403000029000000c001300039000000400010043f0000081b0100004100000001040000290000081b0240009c0000000004018019000000400240021000000000030304330000081b0430009c00000000030180190000006003300210000000000223019f00000000030004140000081b0430009c0000000003018019000000c001300210000000000121019f00000821011001c70000801002000039206720620000040f0000000102200190000019f10000613d000000000101043b000000000001042d000000000001042f000008a50100004100000000001004350000004101000039000000040010043f000008a601000041000020690001043000000000010000190000206900010430000008e00210009c000019f60000813d000000000001042d000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e3030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000008cc0210009c00001a0e0000813d000000000001042d000000400100043d00000064021000390000091903000041000000000032043500000044021000390000091a030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c700002069000104300005000000000002000000400400043d0000004405400039000000000035043500000020034000390000091c050000410000000000530435000008220220019700000024054000390000000000250435000000440200003900000000002404350000091d0240009c00001b0a0000813d00000822021001970000008005400039000000400050043f000008310140009c00001b0a0000213d000000c001400039000000400010043f0000002001000039000300000001001d0000000000150435000000a0014000390000091e06000041000000000061043500000000060404330000000001000414000000040420008c00001a730000c13d000000010100003200001ab40000613d000008290210009c00001b0a0000213d0000001f02100039000000200300008a000000000232016f0000003f02200039000000000232016f000000400900043d0000000002290019000000000392004b00000000030000190000000103004039000008290420009c00001b0a0000213d000000010330019000001b0a0000c13d000000400020043f0000001f0210018f00000000031904360000000304000367000000050110027200001a630000613d000000000500001900000005065002100000000007630019000000000664034f000000000606043b00000000006704350000000105500039000000000615004b00001a5b0000413d000000000502004b00001ab50000613d0000000501100210000000000414034f00000000011300190000000302200210000000000301043300000000032301cf000000000323022f000000000404043b0000010002200089000000000424022f00000000022401cf000000000232019f000000000021043500001ab50000013d000100000005001d0000081b040000410000081b0530009c000000000304801900000040033002100000081b0560009c00000000060480190000006005600210000000000535019f0000081b0310009c0000000001048019000000c001100210000000000115019f000200000002001d2067205d0000040f0003000000010355000000000301001900000060033002700001081b0030019d0000081b0530019800001acd0000613d0000001f035000390000091f033001970000003f033000390000092003300197000000400900043d0000000003390019000000000493004b00000000040000190000000104004039000008290630009c000000020a00002900001b0a0000213d000000010440019000001b0a0000c13d000000400030043f0000001f0450018f0000000003590436000000050550027200001aa40000613d000000000600001900000005076002100000000008730019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00001a9c0000413d000000000604004b00001ad00000613d0000000505500210000000000151034f00000000055300190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500001ad00000013d00000060090000390000000002000415000000050220008a00000005022002100000000001090433000000000301004b00001ad80000c13d000200000009001d000008e5010000410000000000100439000000040100003900000004001004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800202000039206720620000040f000000010220019000001b3b0000613d0000000002000415000000050220008a00001aeb0000013d00000060090000390000008003000039000000020a0000290000000001090433000000010220019000001b270000613d0000000002000415000000040220008a0000000502200210000000000301004b00001adb0000613d0000000502200270000000000209001f00001af50000013d000200000009001d000008e50100004100000000001004390000000400a004430000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008bf011001c70000800202000039206720620000040f000000010220019000001b3b0000613d0000000002000415000000040220008a0000000502200210000000000101043b000000000101004b000000020900002900001b3c0000613d00000000010904330000000502200270000000000209001f000000000201004b00001b090000613d000008d602000041000000200310008c00000000030000190000000003024019000008d601100197000000000401004b000000000200a019000008d60110009c000000000203c019000000000102004b00001b100000c13d00000020019000390000000001010433000000000201004b0000000002000019000000010200c039000000000221004b00001b100000c13d000000000101004b00001b120000613d000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a601000041000020690001043000000000010000190000206900010430000000400100043d00000064021000390000092103000041000000000032043500000044021000390000092203000041000000000032043500000024021000390000002a030000390000000000320435000008320200004100000000002104350000000402100039000000030300002900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000000000201004b00001b4e0000c13d000000400200043d000300000002001d0000083201000041000000000012043500000004012000390000000102000029206715fe0000040f000000030400002900000000014100490000081b020000410000081b0310009c00000000010280190000081b0340009c000000000402801900000040024002100000006001100210000000000121019f0000206900010430000000000001042f000000400100043d00000044021000390000092303000041000000000032043500000024021000390000001d030000390000000000320435000008320200004100000000002104350000000402100039000000030300002900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c700002069000104300000081b020000410000081b0410009c00000000010280190000081b0430009c000000000302801900000040023002100000006001100210000000000121019f000020690001043000050000000000020000082201100197000500000001001d00000000001004350000000201000039000300000001001d000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000101041a000400000001001d000000050100002900000000001004350000000f01000039000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000400200043d000009130320009c00001d3a0000813d000000000101043b0000006003200039000000400030043f000000000301041a00000080013002700000089d0110019700000040042000390000000000140435000000ff043001900000000004000019000000010400c039000000000442043600000008023002700000089d022001970000000000240435000000000312004b0000000003000019000000050500002900001b9c0000a13d0000000002120049000009240120009c00001d750000813d0000001801000039000000000301041a00000000412300a900000000422100d9000000000232004b00001d750000c13d0000001402000039000000000202041a000000000302004b00001d1e0000613d00000000132100d90000000402000029000000000132004b00001c2b0000a13d000200000003001d000000000105004b00001d240000613d00000000005004350000000301000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d00000002030000290000000402300069000000000101043b000000000101041a000400000002001d000200000001001d000000000121004b00001d2e0000413d000000050100002900000000001004350000000301000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d00000004030000290000000202300069000000000101043b000000000021041b0000000401000039000000000201041a0000000002320049000000000021041b000000400100043d000000000031043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d0200003900000003030000390000092504000041000000050500002900000000060000192067205d0000040f000000010120019000001d0a0000613d000000050100002900000000001004350000000b01000039000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000101041a00000000000004350000092602000041000000000202041a0000082201100197000008220220019700000004030000292067178c0000040f000000400100043d0000000d04000039000000000204041a000000000302004b00001d380000613d0000000000400435000008a40310009c00001d3a0000213d000200000004001d0000004003100039000000400030043f000008cf02200041000100000002001d000000000202041a0000081b03200197000000000331043600000020042002700000000000430435000300000004001d000000040240006c00001d750000413d0000000001010433000500000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000005030000290000081b03300197000000010220019000001d0c0000613d000000000101043b000008ca0210009c00001d0d0000213d0000000304000029000000040240006a000000000113004b00001cb60000c13d000008990120009c000000020100002900001d140000213d00000000001004350000002001200210000000010300002900001cb10000013d000000000132004b00001cb50000813d000000000105004b00001d550000613d00040000002300510000000403000039000000000203041a0000000401200029000000000221004b00000000020000190000000102004039000000010220019000001d750000c13d000200000003001d000000000013041b00000000005004350000000301000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d000000000031043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d0200003900000003030000390000092504000041000000000500001900000005060000292067205d0000040f000000010120019000001d0a0000613d0000000b01000039000000200010043f0000092601000041000000000101041a000300000001001d000000050100002900000000001004350000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001d0a0000613d000000000101043b000000000201041a00000003010000290000082201100197000008220220019700000004030000292067178c0000040f000000400100043d0000000202000029000000000202041a000009150220009c00001d670000813d0000000d04000039000000000204041a000000000302004b000500000004001d00001cd70000613d0000000000400435000008a40310009c00001d3a0000213d0000004003100039000000400030043f000008cf02200041000200000002001d000000000202041a0000081b03200197000000000331043600000020022002700000000000230435000400040020002d000000040220006b00000000020000190000000102004039000000010220019000001d750000c13d0000000001010433000300000001001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f00000003030000290000081b03300197000000010220019000001d0c0000613d000000000101043b000008e00210009c00001d0d0000813d000000000113004b000000050200002900001cdf0000c13d0000000401000029000008990110009c00001d140000213d0000000000200435000000040100002900000020011002100000000203000029000000000203041a0000081b02200197000000000112019f000000000013041b000000000001042d000500000002001d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f000000010220019000001d0c0000613d000000000101043b000008ca0210009c00001d0d0000213d0000081b0210009c0000000205000029000000050400002900001d400000213d000008990240009c00001d140000213d000000400200043d000008a40320009c00001d3a0000213d0000004003200039000000400030043f00000000031204360000000000430435000000000105041a000008290410009c00001cff0000a13d00001d3a0000013d000008a40210009c00001d3a0000213d0000004002100039000000400020043f00000020021000390000000000020435000000000001043500001cdf0000013d000008c90100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f000000010220019000001d0c0000613d000000000101043b000008ca0210009c00001d0d0000213d000008cc0210009c000000050500002900001d400000813d0000000402000029000009150220009c00001d140000813d000000400200043d000008a40320009c00001d3a0000213d0000004003200039000000400030043f000000000312043600000004010000290000000000130435000000000105041a000008290410009c00001d3a0000213d0000000104100039000000000045041b000000000050043500000000020204330000081b0220019700000000030304330000002003300210000000000223019f000008ce01100041000000000021041b000000000001042d00000000010000190000206900010430000000000001042f000000400100043d0000006402100039000008e20300004100000000003204350000004402100039000008e30300004100001d460000013d000000400100043d0000006402100039000009170300004100000000003204350000004402100039000009180300004100000000003204350000002402100039000000270300003900001d490000013d000008a50100004100000000001004350000001201000039000000040010043f000008a6010000410000206900010430000000400100043d0000006402100039000008f603000041000000000032043500000044021000390000092c0300004100000000003204350000002402100039000000210300003900001d490000013d000000400100043d00000064021000390000092a03000041000000000032043500000044021000390000092b0300004100000000003204350000002402100039000000220300003900001d490000013d000008a40210009c00001d700000a13d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000400100043d00000064021000390000091903000041000000000032043500000044021000390000091a030000410000000000320435000000240210003900000026030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000000400100043d00000044021000390000092903000041000000000032043500000024021000390000001f030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c700002069000104300000006402100039000009270300004100000000003204350000004402100039000009280300004100000000003204350000002402100039000000300300003900001d490000013d0000004002100039000000400020043f000000200210003900000000000204350000000000010435000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300003000000000002000100000001001d0000082201100197000300000001001d00000000001004350000000f01000039000200000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001df60000613d000000000101043b000000000101041a000000ff0110019000001df80000613d000000030100002900000000001004350000000201000029000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001df60000613d000000400200043d000009130320009c00001e0d0000813d000000000101043b0000006003200039000000400030043f000000000101041a00000080031002700000089d033001970000004004200039000300000004001d0000000000340435000000ff031001900000000003000019000000010300c039000000000232043600000008011002700000089d01100197000200000001001d0000000000120435000008a70100004100000000001004390000081b0100004100000000020004140000081b0320009c0000000002018019000000c0012002100000082f011001c70000800b02000039206720620000040f000000010220019000001e130000613d0000001903000039000000000203041a000000000101043b0000001504000039000000000404041a000008220440019800001dd70000613d0000001705000039000000000505041a000000010550014f000008220550019700000000544500d9000000000541004b00001dd60000813d000000000102004b000000000100001900001de60000613d000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300000000001410049000000000402004b00001de50000613d0000000000300435000000000302004b00001de50000613d000000010420008a0000090202200041000000000302041a000008a302300197000000000221004b000000000204001900001dda0000a13d000000800130027000001de60000013d00000000010000190000001402000039000000000202041a000000000302004b00001e140000613d00000002311000b900000000122100d9000000030100002900000000010104330000089d011001970000000001120049000000000221004b00000000020000190000000102002039000000000202004b000000000100c019000000000001042d00000000010000190000206900010430000000400100043d000000640210003900000907030000410000000000320435000000440210003900000908030000410000000000320435000000240210003900000022030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000000001042f000008a50100004100000000001004350000001201000039000000040010043f000008a60100004100002069000104300000001502000039000000000202041a000008220220019800001e240000613d0000001703000039000000000303041a000000000113013f000008220110019700000000212100d9000000000001042d0000000001000019000000000001042d0000001904000039000000000304041a0000001505000039000000000505041a000008220550019800001e380000613d0000001706000039000000000606041a000000000116013f000008220110019700000000515100d9000000000512004b00001e370000813d000000000103004b000000000100001900001e4f0000c13d000000000001042d00000000021200490000000001030019000000000501004b00001e470000613d000000000503004b00001e490000613d0000000000400435000000010610008a0000090201100041000000000501041a000008a301500197000000000112004b000000000106001900001e390000a13d0000008001500270000000000001042d0000000001000019000000000001042d000008a50100004100000000001004350000003201000039000000040010043f000008a6010000410000206900010430000008a50100004100000000001004350000001101000039000000040010043f000008a60100004100002069000104300000000002010019000000400100043d000009120310009c00001e620000813d0000004003100039000000400030043f000000000202041a000000200310003900000080042002700000000000430435000008a3022001970000000000210435000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a60100004100002069000104300007000000000002000400000001001d0000000021010434000300000002001d000000000101004b00001f090000613d0000001906000039000000000106041a000000000006041b000000000201004b00001e7c0000613d0000000000600435000008a201100041000008ed0210009c00001e7c0000413d000008a202000041000000000002041b0000000102200039000000000312004b00001e780000413d00000004010000290000000001010433000000000101004b00001ecd0000613d0002800d0000003d000000000500001900000000020000190000000004000019000100000006001d00000005015002100000000301100029000000000301043300000020013000390000000007010433000008a30870019800001ed30000613d0000000007030433000008a307700197000000000447004b00001ee00000a13d000000000228004b00001ef20000a13d000000000206041a000008270420009c00001eda0000813d0000000104200039000000000046041b00000000006004350000000003030433000008a30330019700000000010104330000008001100210000000000131019f000008a202200041000000000012041b000000400100043d00000020021000390000000000820435000000000071043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f000008a8011001c700000002030000390000000202000029000008f104000041000600000005001d000700000008001d000500000007001d2067205d0000040f000000010120019000001f070000613d0000000605000029000000010550003900000004010000290000000001010433000000000115004b0000000703000029000000000203001900000005010000290000000004010019000000010600002900001e850000413d000008f20110009c00001ece0000413d000000400100043d0000006402100039000008f30300004100000000003204350000004402100039000008f403000041000000000032043500000024021000390000002a0300003900001efb0000013d00000000030000190000001401000039000000000101041a000000000113004b00001f100000c13d000000000001042d000000400100043d0000004402100039000008f503000041000000000032043500000024021000390000001c0300003900001ee60000013d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000400100043d0000004402100039000008ee03000041000000000032043500000024021000390000001a030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c70000206900010430000000400100043d0000006402100039000008ef0300004100000000003204350000004402100039000008f0030000410000000000320435000000240210003900000025030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c7000020690001043000000000010000190000206900010430000000400100043d0000004402100039000008f80300004100000000003204350000002402100039000000110300003900001ee60000013d000000400100043d0000006402100039000008f60300004100000000003204350000004402100039000008f70300004100000000003204350000002402100039000000210300003900001efb0000013d0000006003300210000000200510003900000000003504350000003403100039000000000043043500000000002104350000005401100039000000000001042d000008270420009c00001f420000813d00000005052002100000003f04500039000008a006400197000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000008290860009c00001f420000213d000000010770019000001f420000c13d000000400060043f00000000002404350000000002150019000000000332004b00001f480000213d000000000312004b00001f400000a13d00000002030003670000000005040019000000000613034f000000000606043b000000200550003900000000006504350000002001100039000000000621004b00001f390000413d0000000001040019000000000001042d000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000000000100001900002069000104300007000000000002000700000002001d000009240220009c00001fab0000813d000400000001001d0000082201100197000600000001001d00000000001004350000000f01000039000500000001001d000000200010043f0000081b0100004100000000020004140000081b0320009c0000000002018019000000c001200210000008a8011001c70000801002000039206720620000040f000000010220019000001fa90000613d0000000603000029000000400400043d000009130240009c00001fc00000813d000000000101043b000000000101041a0000006002400039000000400020043f00000020054000390000000702000029000200000005001d000000000025043500000001020000390000000000240435000300000004001d000000400240003900000080011002700000089d01100197000100000002001d000000000012043500000000003004350000000501000029000000200010043f0000081b0300004100000000010004140000081b0210009c0000000001038019000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001fa90000613d00000003020000290000000002020433000000000202004b000000000101043b000000000201041a000008ff02200197000000010220c1bf000000020300002900000000030304330000000803300210000008d803300197000000000232019f0000000103000029000000000303043300000080033002100000090003300197000000000232019f000000000021041b000000400100043d0000000702000029000000000021043500000000020004140000081b0320009c0000081b0400004100000000020480190000081b0310009c00000000010480190000004001100210000000c002200210000000000112019f00000828011001c70000800d020000390000000203000039000009010400004100000006050000292067205d0000040f000000010120019000001fa90000613d000000040100002920671b570000040f000000000001042d00000000010000190000206900010430000000400100043d00000064021000390000092d03000041000000000032043500000044021000390000092e03000041000000000032043500000024021000390000002c030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c0000000001028019000000400110021000000835011001c70000206900010430000008a50100004100000000001004350000004101000039000000040010043f000008a6010000410000206900010430000500000000000200000000030200190000001a02000039000000000202041a000100000002001d000300000003001d0000000032030434000400000003001d000000000202004b00001ff60000613d000280100000003d0000000003000019000500000003001d000000050230021000000004022000290000000002020433000000000321004b00001fe40000813d0000000000100435000000200020043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000000202000029206720620000040f000000010220019000001ff90000613d00001fef0000013d0000000000200435000000200010043f00000000010004140000081b0210009c0000081b01008041000000c001100210000008a8011001c70000801002000039206720620000040f000000010220019000001ff90000613d0000000503000029000000000101043b000000010330003900000003020000290000000002020433000000000223004b00001fd20000413d000000010110006c00001ffb0000c13d000000000001042d00000000010000190000206900010430000000400100043d0000004402100039000008fe03000041000000000032043500000024021000390000000d030000390000000000320435000008320200004100000000002104350000000402100039000000200300003900000000003204350000081b020000410000081b0310009c00000000010280190000004001100210000008b1011001c7000020690001043000000822011001970000000103000039000000000203041a0000082402200197000000000212019f000000000023041b000000400200043d00000000001204350000081b0100004100000000040004140000081b0540009c00000000040180190000081b0520009c00000000020180190000004001200210000000c002400210000000000112019f00000828011001c70000800d0200003900000826040000412067205d0000040f0000000101200190000020250000613d000000000001042d00000000010000190000206900010430000000000001042f0000081b030000410000081b0410009c000000000103801900000040011002100000081b0420009c00000000020380190000006002200210000000000112019f00000000020004140000081b0420009c0000000002038019000000c002200210000000000112019f00000821011001c70000801002000039206720620000040f00000001022001900000203c0000613d000000000101043b000000000001042d0000000001000019000020690001043000000000050100190000000000200439000000050130008c0000204c0000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000631004b000020440000413d0000081b0100004100000000020004140000081b0420009c00000000020180190000081b0430009c00000000030180190000006001300210000000c002200210000000000112019f0000092f011001c70000000002050019206720620000040f00000001022001900000205c0000613d000000000101043b000000000001042d000000000001042f00002060002104210000000102000039000000000001042d0000000002000019000000000001042d00002065002104230000000102000039000000000001042d0000000002000019000000000001042d0000206700000432000020680001042e00002069000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff496e7465726e616c20766f746520747261636b657200000000000000000000004956540000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff0000000000000000000000000000000000000000ffff0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000020000002600000000000000000ccdd1baf560d2682736fa25752c8ccc0c5fc4079b245b0acf7389776308d5b1f00000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3020000000000000000000000000000000000000000000180000000000000000002000000000000000000000000000000000000000000024000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b02000002000000000000000000000000000000040000000000000000000000008b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f000000000000000000000000000000000000000000000000ffffffffffffff3f08c379a000000000000000000000000000000000000000000000000000000000616c697a696e6700000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e69746900000000000000000000000000000000000000840000000000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249800000002000000000000000000000000000002000000010000000000000000000000000000000000000000000000000000000000000000000000000091ddadf300000000000000000000000000000000000000000000000000000000c955725400000000000000000000000000000000000000000000000000000000e85858d800000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000fc0c546900000000000000000000000000000000000000000000000000000000fc0c546a00000000000000000000000000000000000000000000000000000000ffa1ad7400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f56c854700000000000000000000000000000000000000000000000000000000eac989f700000000000000000000000000000000000000000000000000000000eac989f800000000000000000000000000000000000000000000000000000000f1127ed800000000000000000000000000000000000000000000000000000000e85858d900000000000000000000000000000000000000000000000000000000e90a182f00000000000000000000000000000000000000000000000000000000dd62ed3d00000000000000000000000000000000000000000000000000000000e12f3a6000000000000000000000000000000000000000000000000000000000e12f3a6100000000000000000000000000000000000000000000000000000000e834a83400000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000de032f5800000000000000000000000000000000000000000000000000000000d972e8ac00000000000000000000000000000000000000000000000000000000d972e8ad00000000000000000000000000000000000000000000000000000000dc2f511b00000000000000000000000000000000000000000000000000000000c955725500000000000000000000000000000000000000000000000000000000d505accf00000000000000000000000000000000000000000000000000000000a4ef1f7700000000000000000000000000000000000000000000000000000000bb22dcca00000000000000000000000000000000000000000000000000000000c6e8d98100000000000000000000000000000000000000000000000000000000c6e8d98200000000000000000000000000000000000000000000000000000000c78d598500000000000000000000000000000000000000000000000000000000bb22dccb00000000000000000000000000000000000000000000000000000000c3cda52000000000000000000000000000000000000000000000000000000000ab803a7500000000000000000000000000000000000000000000000000000000ab803a7600000000000000000000000000000000000000000000000000000000b6d8f79f00000000000000000000000000000000000000000000000000000000a4ef1f7800000000000000000000000000000000000000000000000000000000a9059cbb000000000000000000000000000000000000000000000000000000009ab24eaf00000000000000000000000000000000000000000000000000000000a3f4df7d00000000000000000000000000000000000000000000000000000000a3f4df7e00000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000009ab24eb0000000000000000000000000000000000000000000000000000000009b642de1000000000000000000000000000000000000000000000000000000009691cab4000000000000000000000000000000000000000000000000000000009691cab5000000000000000000000000000000000000000000000000000000009a0e7d660000000000000000000000000000000000000000000000000000000091ddadf40000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000003a46b1a70000000000000000000000000000000000000000000000000000000070a08230000000000000000000000000000000000000000000000000000000007ecebdff000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000008e539e8c000000000000000000000000000000000000000000000000000000007ecebe000000000000000000000000000000000000000000000000000000000084b0196e0000000000000000000000000000000000000000000000000000000075aa9bc50000000000000000000000000000000000000000000000000000000075aa9bc6000000000000000000000000000000000000000000000000000000007cb647590000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000715018a600000000000000000000000000000000000000000000000000000000587cde1d00000000000000000000000000000000000000000000000000000000684de1f400000000000000000000000000000000000000000000000000000000684de1f5000000000000000000000000000000000000000000000000000000006fcfff4500000000000000000000000000000000000000000000000000000000587cde1e000000000000000000000000000000000000000000000000000000005c19a95c00000000000000000000000000000000000000000000000000000000495906560000000000000000000000000000000000000000000000000000000049590657000000000000000000000000000000000000000000000000000000004bf5d7e9000000000000000000000000000000000000000000000000000000003a46b1a8000000000000000000000000000000000000000000000000000000003cf3a0250000000000000000000000000000000000000000000000000000000023b872dc00000000000000000000000000000000000000000000000000000000313ce566000000000000000000000000000000000000000000000000000000003644e514000000000000000000000000000000000000000000000000000000003644e515000000000000000000000000000000000000000000000000000000003950935100000000000000000000000000000000000000000000000000000000313ce567000000000000000000000000000000000000000000000000000000003480e6ab000000000000000000000000000000000000000000000000000000002ddbd139000000000000000000000000000000000000000000000000000000002ddbd13a000000000000000000000000000000000000000000000000000000002e7ba6ef0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000276801ec00000000000000000000000000000000000000000000000000000000144fa6d6000000000000000000000000000000000000000000000000000000001be1955f000000000000000000000000000000000000000000000000000000001be19560000000000000000000000000000000000000000000000000000000001f8d1d5000000000000000000000000000000000000000000000000000000000144fa6d70000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000000000000000000000000000000000000f56b96c00000000000000000000000000000000000000200000008000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000004000000000000000000000000066de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090f4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d0000000000000000000000000000000000ffffffffffffffffffffffffffffff000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c969500000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000000000000000000000000000000000000400000000000000000000000006e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9000000000000000000000000000000000000000000000000ffffffffffffff1f310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000190100000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000420000000000000000000000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a00000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000006400000000000000000000000045524332305065726d69743a20696e76616c6964207369676e6174757265000064697361626c656420666f7220766f74696e6720706f77657200000000000000756500000000000000000000000000000000000000000000000000000000000045434453413a20696e76616c6964207369676e6174757265202773272076616c45524332305065726d69743a206578706972656420646561646c696e6500000002000000000000000000000000000000000000200000008000000000000000006c339c0bee516a4df5d7074ba7a974856d609f83666e915aa4a0f90e06989dc5e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf000000000000000000000000000000000000000000000000ffffffffffffff5f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000045434453413a20696e76616c6964207369676e617475726500000000000000004552433230566f7465733a207369676e617475726520657870697265640000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000005472616e73666572206661696c65642e000000000000000000000000000000003b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000000000000000000000000000000000000000000000000000005472616e63686556657374696e674d65726b6c654469737472696275746f72000000000000000000000000000000000000000000000000c000000000000000004f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572d70c1392a974224e639e7a9607dcb2c766826aecfe2dc356f442ce0488b01e1ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f42cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd10000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000010000d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4b3512b0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf0f00000000000000000000000000000000000000000000000000000000000000914960aef5e033ce5cae8a7992d4b7a6f0f9741227b66acb67c605b7019f8a46000000000000000000000000000000000000000000000000ffffffffffffff9f8000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000ff00000000000000000000000000000000ffffffffffffffffffffffffffffff006f6e5265636f726420746f74616c00000000000000000000000000000000000064656372656173652067726561746572207468616e20646973747269627574697220746f74616c0000000000000000000000000000000000000000000000000064656372656173652067726561746572207468616e206469737472696275746fd81661cef4e40e0f1f97384c033d606e4d6b570554fc3524568d8f9fc84c838861646a7573746d656e74203e206d61782075696e7431323000000000000000006d75737420696e697469616c697a65206265666f72652061646a757374696e6700000000000000000000000000000000000000000000000000010000000000006d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000382062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e20344552433230566f7465733a20667574757265206c6f6f6b7570000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c726561ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff433127dedcff849792656a12f4a9dbc0efeb80df5cce6310f53481a93cd71c71dccb8d94a5bbd764ed844afa20f2581be18d3fa84b36855e86a8f0c9316cba7d80b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3492064656d616e64206d6f72652072616e646f6d6e6573730000000000000000944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96967472616e6368652074696d65206d75737420696e63726561736500000000000072656173650000000000000000000000000000000000000000000000000000007472616e63686520766573746564206672616374696f6e206d75737420696e635104929ca78e46ba25dca9557731ec873a03ae745d3ee194d262cc4820662a1c00000000000000000000000000000000000000000000000000000000f4865701616e20312032313030290000000000000000000000000000000000000000000076657374696e6720656e6473206166746572203431303234343438303020284a7472616e63686520766573746564206672616374696f6e203d3d20300000000073000000000000000000000000000000000000000000000000000000000000006c617374207472616e636865206d757374207665737420616c6c20746f6b656e7472616e636865732072657175697265640000000000000000000000000000004469737472696275746f723a20746f74616c20697320300000000000000000004469737472696275746f723a20746f6b656e20697320616464726573732830296e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420690200000000000000000000000000000000000054000000a00000000000000000696e76616c69642070726f6f6600000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000db598eb8e0a3d3d5c2e02e4cab1ee8b65bb20e48fc7b42f4c76272de4cdd2434944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9694ff000000000000000000000000000000ffffffffffffffffffffffffffffffff47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d46d61626c65207269676874206e6f7700000000000000000000000000000000004469737472696275746f723a206e6f206d6f726520746f6b656e7320636c616965640000000000000000000000000000000000000000000000000000000000004469737472696275746f723a20636c61696d206e6f7420696e697469616c697a5265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a20696e73756666696369656e7420616c6c6f77616e6365000000ac657d3615bd618ee537848e2b33acd2a9df67d4776485ab6922b0421d324d2970a082310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000000000000000000000000000000000000000064000000800000000000000000efc1fd16ea80a922086ee4e995739d59b025c1bcea6d1f67855747480c83214b746f6b656e206973206164647265737328302900000000000000000000000000036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0000000000000000000000000000000000000000000000000ffffffffffffffc0000000000000000000000000000000000000000000000000ffffffffffffffa03134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f0000000100000000000000000000000000000000000000000000000000000000dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724323420626974730000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2032322062697473000000000000000000000000000000000000000000000000000053616665436173743a2076616c756520646f65736e27742066697420696e2033000000000000000000000000000000000000000000000000ffffffffffffff40a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff805361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656400000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe06f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000000000000000000000000000000000000001000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76766572666c6f77696e6720766f746573000000000000000000000000000000004552433230566f7465733a20746f74616c20737570706c79207269736b73206f45524332303a206d696e7420746f20746865207a65726f206164647265737300636500000000000000000000000000000000000000000000000000000000000045524332303a206275726e20616d6f756e7420657863656564732062616c616e45524332303a206275726e2066726f6d20746865207a65726f2061646472657375696e74313230292e6d617800000000000000000000000000000000000000004469737472696275746f723a20746f74616c416d6f756e74203e20747970652802000002000000000000000000000000000000000000000000000000000000002536907b336817ff3a940af976e4e4006701a428e79e03c3b37bd90b4680c832", - "entries": [ - { - "constructorArgs": [], - "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", - "deploymentType": "create", - "factoryDeps": [], - "address": "0xB63DC17fA834AA961aE88b6005e507Ddb60B2c53", - "txHash": "0x30f4767c6a6691def40b481bcc72caeb99e4bb0aea61b3d020e6c6d95f200bf8" - } - ] -} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json deleted file mode 100644 index 5cc1a8e9..00000000 --- a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json +++ /dev/null @@ -1,207 +0,0 @@ -{ - "sourceName": "contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol", - "contractName": "TrancheVestingMerkleDistributorFactory", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "distributor", - "type": "address" - } - ], - "name": "DistributorDeployed", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_total", - "type": "uint256" - }, - { - "internalType": "string", - "name": "_uri", - "type": "string" - }, - { - "components": [ - { - "internalType": "uint128", - "name": "time", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "vestedFraction", - "type": "uint128" - } - ], - "internalType": "struct Tranche[]", - "name": "_tranches", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "_merkleRoot", - "type": "bytes32" - }, - { - "internalType": "uint160", - "name": "_maxDelayTime", - "type": "uint160" - }, - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "deployDistributor", - "outputs": [ - { - "internalType": "contract TrancheVestingMerkleDistributor", - "name": "distributor", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "distributors", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_total", - "type": "uint256" - }, - { - "internalType": "string", - "name": "_uri", - "type": "string" - }, - { - "components": [ - { - "internalType": "uint128", - "name": "time", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "vestedFraction", - "type": "uint128" - } - ], - "internalType": "struct Tranche[]", - "name": "_tranches", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "_merkleRoot", - "type": "bytes32" - }, - { - "internalType": "uint160", - "name": "_maxDelayTime", - "type": "uint160" - }, - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "predictDistributorAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x00010000000000020008000000000002000000000001035500000000030100190000006003300270000000e1033001970000000102200190000000c80000c13d0000008002000039000000400020043f000000040230008c000002380000413d000000000201043b000000e002200270000000e50420009c000000f80000213d000000e80420009c0000011e0000613d000000e90220009c000002380000c13d0000000002000416000001040430008c000002380000413d000000000202004b000002380000c13d0000000402100370000000000d02043b000000e302d0009c000002380000213d0000004402100370000000000502043b000000ea0250009c000002380000213d0000002302500039000000000232004b000002380000813d0000000406500039000000000261034f000000000202043b000000f60720009c000001180000813d0000001f07200039000000200c00008a0000000007c7016f0000003f077000390000000007c7016f000000eb0870009c000001180000213d0000008007700039000000400070043f000000800020043f00000000052500190000002405500039000000000535004b000002380000213d0000002005600039000000000551034f0000001f0620018f0000000507200272000000450000613d00000000080000190000000509800210000000000a95034f000000000a0a043b000000a0099000390000000000a904350000000108800039000000000978004b0000003d0000413d000000000806004b000000540000613d0000000507700210000000000575034f0000000306600210000000a007700039000000000807043300000000086801cf000000000868022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000585019f0000000000570435000000a00220003900000000000204350000006402100370000000000202043b000000ea0520009c000002380000213d0000002305200039000000000535004b000002380000813d0000000405200039000000000551034f000000000605043b000000ea0560009c000001180000213d00000005056002100000003f05500039000000ec05500197000000400400043d0000000005540019000000000745004b00000000070000190000000107004039000000ea0850009c000001180000213d0000000107700190000001180000c13d000000400050043f0000000000640435000000240220003900000006056002100000000005250019000000000735004b000002380000213d000000000606004b000001c60000c13d000000a402100370000000000602043b000000e30260009c000002380000213d000000c402100370000000000702043b000000e30270009c000002380000213d00020000000c001d0000002402100370000000000202043b0000008403100370000000000503043b000000e401100370000000000801043b000000800300003900000000010d0019000300000004001d037d02db0000040f000000f2020000410000000000200439000000000200041200000004002004430000002400000443000400000001001d000000e1030000410000000001000414000000e10210009c0000000001038019000000c001100210000000f7011001c70000800502000039037d03780000040f00000001022001900000023a0000613d000000000101043b0000008802100270000000f802200197000000f9022001c700000000002004350000007801100210000000fa011001c7000000200010043f000000fb010000410000000002000414000000090010043f00000004010000290000000d0010043f00000060010000390000004d0010043f0000004d0100008a0000006d0010043f000000e10120009c000000e102008041000000c001200210000000fc011001c70000800602000039037d03730000040f0000000102200190000000b60000613d000000000101043b000400e30010019c0000020e0000c13d000000400100043d00000044021000390000010403000041000000000032043500000024021000390000001703000039000000000032043500000105020000410000000000210435000000040210003900000020030000390000000000320435000000e102000041000000e10310009c0000000001028019000000400110021000000106011001c70000037f000104300000000002000416000000000202004b000002380000c13d0000001f02300039000000e202200197000000a002200039000000400020043f0000001f0230018f0000000504300272000000db0000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000d30000413d000000000502004b000000ea0000613d0000000504400210000000000141034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000200130008c000002380000413d000000a00100043d000000e30210009c000002380000213d000000800010043f000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000e4010000410000037e0001042e000000e60420009c000001370000613d000000e70220009c000002380000c13d0000000002000416000001040430008c000002380000413d000000000202004b000002380000c13d0000000402100370000000000902043b000000e30290009c000002380000213d0000004402100370000000000402043b000000ea0240009c000002380000213d0000002302400039000000000232004b000002380000813d0000000405400039000000000251034f000000000202043b000000ea0620009c000001180000213d0000001f06200039000000200700008a000000000676016f0000003f06600039000000000676016f000000eb0760009c000001480000a13d000001070100004100000000001004350000004101000039000000040010043f00000108010000410000037f000104300000000002000416000000240330008c000002380000413d000000000202004b000002380000c13d0000000401100370000000000101043b000000000200041a000000000221004b000002380000813d037d02ce0000040f0000000302200210000000000101041a000000000121022f000000e301100197000000ff0220008c0000000001002019000000400200043d0000000000120435000000e101000041000000e10320009c00000000020180190000004001200210000000f4011001c70000037e0001042e0000000001000416000000000101004b000002380000c13d0000000001000412000800000001001d000700000000001d000080050100003900000044030000390000000004000415000000080440008a0000000504400210000000f202000041037d03590000040f000000e301100197000000800010043f000000f5010000410000037e0001042e0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000434004b000002380000213d0000002004500039000000000441034f0000001f0520018f00000005062002720000015d0000613d00000000070000190000000508700210000000000a84034f000000000a0a043b000000a0088000390000000000a804350000000107700039000000000867004b000001550000413d000000000705004b0000016c0000613d0000000506600210000000000464034f0000000305500210000000a006600039000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f0000000000460435000000a00220003900000000000204350000006402100370000000000202043b000000ea0420009c000002380000213d0000002304200039000000000434004b000002380000813d0000000404200039000000000441034f000000000604043b000000ea0460009c000001180000213d00000005046002100000003f04400039000000ec05400197000000400400043d0000000005540019000000000745004b00000000070000190000000107004039000000ea0850009c000001180000213d0000000107700190000001180000c13d000000400050043f0000000000640435000000240220003900000006056002100000000005250019000000000735004b000002380000213d000000000606004b000001ea0000c13d000000a402100370000000000602043b000000f00260009c000002380000813d000000c402100370000000000702043b000000e30270009c000002380000213d0000002402100370000000000202043b0000008403100370000000000503043b000000e401100370000000000801043b00000080030000390000000001090019037d02db0000040f000000400400043d000400000004001d0000003802400039000000000300041000000000003204350000002402400039000000f10300004100000000003204350000000002000412000600000002001d000500000000001d000300000001001d000080050100003900000044030000390000000004000415000000060440008a0000000504400210000000f202000041037d03590000040f000000040300002900000014023000390000000000120435000000580130003900000003020000290000000000210435000000f30100004100000000001304350000000c013000390000003702000039037d03430000040f00000004030000290000007802300039000000000012043500000043013000390000005502000039037d03430000040f000000e3011001970000012f0000013d000000ed0600004100000000070400190000000008230049000000400980008c00000000090000190000000009064019000000ed08800197000000000a08004b000000000a000019000000000a062019000000ed0880009c000000000a09c01900000000080a004b000002380000c13d000000400800043d000000ee0980009c000001180000213d0000004009800039000000400090043f000000000921034f000000000909043b000000ef0a90009c000002380000213d0000000009980436000000200a200039000000000aa1034f000000000a0a043b000000ef0ba0009c000002380000213d00000020077000390000000000a9043500000000008704350000004002200039000000000852004b000001c80000413d000000770000013d000000ed0600004100000000070400190000000008230049000000400a80008c000000000a000019000000000a064019000000ed08800197000000000b08004b000000000b000019000000000b062019000000ed0880009c000000000b0ac01900000000080b004b000002380000c13d000000400800043d000000ee0a80009c000001180000213d000000400a8000390000004000a0043f000000000a21034f000000000a0a043b000000ef0ba0009c000002380000213d000000000aa80436000000200b200039000000000bb1034f000000000b0b043b000000ef0cb0009c000002380000213d00000020077000390000000000ba043500000000008704350000004002200039000000000852004b000001ec0000413d0000018f0000013d000000000100041a000000ea0210009c000001180000213d0000000102100039000000000020041b0000000000000435000000fd01100041000000000201041a000000fe022001970000000405000029000000000252019f000000000021041b000000e103000041000000400100043d000100000001001d0000000001000414000000e10210009c0000000001038019000000c001100210000000ff011001c70000800d0200003900000002030000390000010004000041037d03730000040f0000000101200190000002380000613d00000101010000410000000000100439000000040100002900000004001004430000000001000414000000e10210009c000000e101008041000000c00110021000000102011001c70000800202000039037d03780000040f00000001022001900000023a0000613d000000000101043b000000000101004b0000023b0000c13d00000000010000190000037f00010430000000000001042f00000103010000410000000105000029000000000015043500000000010003670000000402100370000000000202043b000000e302200197000000040350003900000000002304350000002402100370000000000202043b0000004403500039000000e004000039000000000043043500000024035000390000000000230435000000e402500039000000800300043d00000000003204350000010402500039000000000403004b000002590000613d00000000040000190000000005240019000000a006400039000000000606043300000000006504350000002004400039000000000534004b000002520000413d000000000423001900000000000404350000001f03300039000000020330017f00000001040000290000006404400039000001000530003900000000005404350000000002230019000000030300002900000000030304330000000002320436000000000403004b000002750000613d00000000040000190000000307000029000000200770003900000000050704330000000065050434000000ef0550019700000000055204360000000006060433000000ef06600197000000000065043500000040022000390000000104400039000000000534004b000002690000413d0000008403100370000000000303043b000000010500002900000084045000390000000000340435000000a403100370000000000303043b000000e303300197000000a4045000390000000000340435000000c403500039000000c401100370000000000101043b000000e301100197000000000013043500000000010004140000000403000029000000040330008c0000029b0000613d00000001050000290000000002520049000000e103000041000000e10450009c000000000403001900000000040540190000004004400210000000e10520009c00000000020380190000006002200210000000000242019f000000e10410009c0000000001038019000000c001100210000000000121019f0000000402000029037d03730000040f0000000102200190000002a80000613d0000000101000029000000ea0110009c000001180000213d0000000103000029000000400030043f00000004010000290000000000130435000000e101000041000000e10230009c00000000030180190000004001300210000000f4011001c70000037e0001042e000000400200043d000000000301001900000060033002700000001f0430018f000000e1033001970000000505300272000002b80000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002b00000413d000000000604004b000002c70000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000e101000041000000e10420009c000000000201801900000040012002100000006002300210000000000121019f0000037f00010430000000000200041a000000000212004b000002d50000a13d000000fd0110004100000000000004350000000002000019000000000001042d000001070100004100000000001004350000003201000039000000040010043f00000108010000410000037f00010430000000400900043d000000600a900039000001000b0000390000000000ba0435000000400a90003900000000002a0435000000e3021001970000002001900039000000000021043500000000a2030434000001200390003900000000002304350000014003900039000000000b02004b000002f20000613d000000000b000019000000000c3b0019000000000dba0019000000000d0d04330000000000dc0435000000200bb00039000000000c2b004b000002eb0000413d000000000a23001900000000000a04350000001f0a200039000000200200008a000000000a2a016f0000000003a30019000000000a930049000000200aa0008a000000800b9000390000000000ab0435000000000a0404330000000003a30436000000000b0a004b0000030d0000613d000000000b0000190000002004400039000000000c04043300000000dc0c0434000000ef0cc00197000000000cc30436000000000d0d0433000000ef0dd001970000000000dc04350000004003300039000000010bb00039000000000cab004b000003010000413d00000100049000390000000000840435000000e304700197000000e0079000390000000000470435000000e304600197000000c0069000390000000000460435000000a00490003900000000005404350000000003930049000000200430008a00000000004904350000001f03300039000000000323016f0000000002930019000000000332004b00000000030000190000000103004039000000ea0420009c0000033a0000213d00000001033001900000033a0000c13d000000400020043f000000e102000041000000e10310009c000000000102801900000040011002100000000003090433000000e10430009c00000000030280190000006003300210000000000113019f0000000003000414000000e10430009c0000000003028019000000c002300210000000000112019f000000ff011001c70000801002000039037d03780000040f0000000102200190000003400000613d000000000101043b000000000001042d000001070100004100000000001004350000004101000039000000040010043f00000108010000410000037f0001043000000000010000190000037f00010430000000000001042f000000e103000041000000e10410009c00000000010380190000004001100210000000e10420009c00000000020380190000006002200210000000000112019f0000000002000414000000e10420009c0000000002038019000000c002200210000000000112019f000000ff011001c70000801002000039037d03780000040f0000000102200190000003570000613d000000000101043b000000000001042d00000000010000190000037f0001043000000000050100190000000000200439000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000231004b0000035c0000413d000000e1010000410000000002000414000000e10420009c0000000002018019000000e10430009c00000000030180190000006001300210000000c002200210000000000112019f00000109011001c70000000002050019037d03780000040f0000000102200190000003720000613d000000000101043b000000000001042d000000000001042f00000376002104210000000102000039000000000001042d0000000002000019000000000001042d0000037b002104230000000102000039000000000001042d0000000002000019000000000001042d0000037d000004320000037e0001042e0000037f00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000aaf10f4100000000000000000000000000000000000000000000000000000000aaf10f4200000000000000000000000000000000000000000000000000000000d0dd5a7a0000000000000000000000000000000000000000000000000000000050b492ba00000000000000000000000000000000000000000000000000000000552ccdd8000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf3ff310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0000000000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000001000000000000000002000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff0000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf33cda33511d41a8a5431b1770c5bc0ddd62e1cd30555d16659b89c0d60f4f9f570200000000000000000000000000000000000037000000090000000000000000290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000448708bcd9fda3435ba79d40bb017e884dcbed0b1e972743c8fd32f6c5ff47bb1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000003480e6ab00000000000000000000000000000000000000000000000000000000455243313136373a2063726561746532206661696c656400000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000020000020000000000000000000000000000000000000000000000000000000009d5e4eb8d9f1d5f4119183b11d17d8d23cfcb13f58991ee0fcf88ebc97385e2", - "entries": [ - { - "constructorArgs": [ - "0xB63DC17fA834AA961aE88b6005e507Ddb60B2c53" - ], - "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", - "deploymentType": "create", - "factoryDeps": [], - "address": "0xc6B19D47a336d3382f57EdD768233076a27C28c2", - "txHash": "0x16ce0f3249f4f143e810c11d1ee0b86b3934c059a81fb744cc025075baa5a79c" - } - ] -} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json index ce4850dc..5560c783 100644 --- a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSale.sol/FlatPriceSale_v_2_1.json @@ -968,7 +968,7 @@ "type": "function" } ], - "bytecode": "0x0004000000000002001d00000000000200000000030100190000006004300270000005440340019700030000003103550002000000010355000005440040019d00000001022001900000005c0000c13d0000008007000039000000400070043f000000040230008c000000850000413d000000000201043b000000e002200270000005510420009c000000870000213d000005650420009c000000ac0000213d0000056f0420009c000001d30000a13d000005700420009c000002240000213d000005730420009c000002980000613d000005740220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b001b05460010019b000005460110009c000000850000213d0000009701000039000000000101041a000005af0200004100000000002004390000054601100197001a00000001001d000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000101004b000000850000613d000000400500043d000005d501000041000000000015043500000004015000390000001b02000029000000000021043500000000010004140000001a02000029000000040320008c000000570000613d0000054404000041000005440310009c0000000001048019000005440350009c00000000040540190000004003400210000000c001100210000000000131019f00000595011001c7001b00000005001d150a15000000040f0000001b0500002900000000030100190000006003300270000105440030019d000005440330019700030000000103550000000102200190000007750000613d0000057d0150009c000007a60000213d000000400050043f00000000010000190000150b0001042e0000000002000416000000000202004b000000850000c13d0000001f023000390000054502200197000000c002200039000000400020043f0000001f0230018f00000005043002720000006f0000613d00000000050000190000000506500210000000000761034f000000000707043b000000c00660003900000000007604350000000105500039000000000645004b000000670000413d000000000502004b0000007e0000613d0000000504400210000000000141034f0000000302200210000000c004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000400130008c000000850000413d000000c00300043d000000e00400043d0000054605400197000005460140009c000000e30000a13d00000000010000190000150c00010430000005520420009c0000011a0000213d0000055c0420009c000001de0000a13d0000055d0420009c0000023b0000213d000005600420009c000002b30000613d000005610120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000059c0100004100000000001004390000000001000410000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800a02000039150a15050000040f000000010220019000000fe10000613d000000000901043b000000ce01000039000000000201041a00000000010004140000054604200197000000040240008c000005eb0000c13d00000001020000390000000101000031000006d00000013d000005660420009c000001f20000a13d000005670420009c000002560000213d0000056a0420009c000002be0000613d0000056b0120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d603000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f00000001055001900000039d0000c13d000000d505000039000000000c05041a000000d405000039000000000b05041a000000d305000039000000000a05041a000000d205000039000000000905041a000000d105000039000000000805041a000000d005000039000000000705041a000000cf05000039000000000605041a000000ce05000039000000000d05041a000000800010043f000000000404004b001b00000006001d001a00000007001d001900000008001d001800000009001d00170000000a001d00160000000b001d00150000000c001d00140000000d001d000005f40000613d0000000000300435000000000201004b000006950000c13d000000a001000039000006a00000013d000000000100041a0000ff0002100190000001be0000c13d000000ff0210018f000000ff0220008c000001040000613d000000ff011001bf000000000010041b000000ff01000039000000400200043d00000000001204350000054401000041001a00000003001d0000000003000414001900000004001d000005440430009c0000000003018019000005440420009c00000000020180190000004001200210000000c002300210000000000112019f0000054b011001c70000800d0200003900000001030000390000054c04000041001b00000005001d150a15000000040f00000019040000290000001a030000290000001b050000290000000101200190000000850000613d000000400100043d000000000203004b000002780000613d000000000205004b000002780000c13d00000044021000390000054f030000410000000000320435000000240210003900000011030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000005530420009c0000020e0000a13d000005540420009c0000025f0000213d000005570420009c000002c90000613d000005580220009c000000850000c13d0000000002000416000000840430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d000005460220009c000000850000213d0000002402100370000000000202043b001a00000002001d0000004402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d001800040020003d0000001804100360000000000404043b001900000004001d0000057d0440009c000000850000213d0000002404200039001700000004001d0000001902400029000000000232004b000000850000213d0000006402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000141034f000000000101043b001600000001001d0000057d0110009c000000850000213d000000240220003900000016010000290000000501100210001400000001001d001300000002001d0000000001210019000000000131004b000000850000213d001500000007001d0000057e01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000000002000411001200000002001d000000000112004b0000081d0000c13d000000cf01000039000000000101041a000000000201004b000008a70000c13d000000190100006b000008940000c13d000000d301000039000000000101041a001800000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000180210006c000009b80000a13d000000d402000039000000000202041a000000000221004b000009d80000813d000000d002000039000000000202041a000000d903000039000000000303041a000000000223004b000009e80000813d000000d502000039000000000302041a000000000203004b0000000002000019000001970000613d0000054602300198000005d20000613d000000db03000039000000000303041a000000120330014f0000054603300197000005464220012900000000322300d9000000180110006a000000000121004b00000a7d0000a13d0000001b010000290000000000100435000000cd01000039001800000001001d000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000400200043d000005840320009c000007a60000213d000000000101043b0000004003200039000000400030043f000000000101041a000000a003100270000000ff0330018f000000200420003900000000003404350000054601100198000000000012043500000b040000c13d000000400100043d000000440210003900000589030000410000000000320435000000240210003900000015030000390000010e0000013d000000400100043d000000640210003900000547030000410000000000320435000000440210003900000548030000410000000000320435000000240210003900000027030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c000000000102801900000040011002100000054a011001c70000150c00010430000005750420009c0000048b0000613d000005760420009c000003770000613d000005770120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d901000039000002370000013d000005620420009c0000053c0000613d000005630120009c0000038e0000613d000005640120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d901000039000000000101041a000000d802000039000000000202041a000000d703000039000000000303041a000000800030043f000000a00020043f000000c00010043f000005a1010000410000150b0001042e0000056c0420009c000005650000613d0000056d0420009c000003a30000613d0000056e0120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000006501000039000000000201041a00000546052001970000000003000411000000000335004b000005d80000c13d000005aa02200197000000000021041b00000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059e011001c70000800d020000390000000303000039000005ae040000410000000006000019000007260000013d000005590420009c0000056e0000613d0000055a0420009c000004750000613d0000055b0220009c000000850000c13d0000000002000416000000640330008c000000850000413d000000000202004b000000850000c13d0000004402100370000000000302043b000005460230009c000000850000213d0000000402100370000000000402043b0000002401100370000000000201043b0000000001040019150a11290000040f000005fd0000013d000005710420009c000002d20000613d000005720220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000000000100435000000da01000039000000200010043f00000040020000390000000001000019150a14ea0000040f000000000101041a000000800010043f0000058a010000410000150b0001042e0000055e0420009c000002f60000613d0000055f0220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000000000100435000000cd01000039000000200010043f00000040020000390000000001000019150a14ea0000040f000000000101041a0000054602100197000000800020043f000000a001100270000000ff0110018f000000a00010043f0000059b010000410000150b0001042e000005680420009c000003130000613d000005690120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000006501000039000002cd0000013d000005550420009c0000035a0000613d000005560120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000c001000039000000400010043f0000000301000039000000800010043f0000057801000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e002000039150a100b0000040f000000c00110008a0000054402000041000005440310009c0000000001028019000000600110021000000579011001c70000150b0001042e000000a00040043f000000800030043f000000000031043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f0000054b011001c70000800d020000390000000203000039001b00000003001d0000054d04000041150a15000000040f0000000101200190000000850000613d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a00010044300000100002004430000001b0100002900000120001004430000054e010000410000150b0001042e0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000006502000039000000000202041a00000546022001970000000003000411000000000232004b000005d80000c13d000000000201004b000007170000c13d0000054901000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f000005d901000041000000c40010043f000005d6010000410000150c000104300000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d150a11140000040f000005fd0000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d150a10340000040f000005fd0000013d0000000001000416000000000101004b000000850000c13d000000cc01000039000000000101041a0000054601100197000000800010043f0000058a010000410000150b0001042e0000000001000416000000000101004b000000850000c13d000000d301000039000000000101041a001b00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001b0210006b0000000002000019000002f40000813d000000d402000039000000000202041a000000000112004b0000000002000019000002f40000a13d000000d001000039000000000101041a000000d902000039000000000202041a000000000112004b00000000020000190000000102004039000000010120018f000005fd0000013d0000000001000416000000000101004b000000850000c13d000000d401000039000000000101041a001b00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001b0110006b000005fb0000a13d000000d001000039000000000101041a000000d902000039000000000202041a000000000112004b00000000010000190000000101008039000005fc0000013d0000000002000416000000240430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d0000057d0220009c000000850000213d0000001b0430006a000005a402000041000001240340008c00000000030000190000000003024019001a00000004001d000005a404400197000000000504004b000000000200a019000005a40440009c000000000203c019000000000202004b000000850000c13d000001a002000039000000400020043f000000ce09000039000000000309041a0000054603300197000000800030043f000000cf0a00003900000000030a041a000000a00030043f000000d00b00003900000000030b041a000000c00030043f000000d10c00003900000000030c041a000000e00030043f000000d20d00003900000000030d041a000001000030043f000000d30e00003900000000030e041a000001200030043f000000d40f00003900000000030f041a000001400030043f000000d507000039000000000307041a000001600030043f000000d608000039000000000408041a000000010540019000000001064002700000007f0360018f000000000306c0190000001f0630008c00000000060000190000000106002039000000000664013f00000001066001900000039d0000c13d000001a00030043f000000000505004b001900000007001d0000076e0000613d0000000000800435000000000403004b000007980000c13d0000002003000039000007ac0000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000006502000039000000000202041a00000546022001970000000003000411000000000232004b000005d80000c13d000000000201004b0000072b0000c13d0000054901000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000057a01000041000000c40010043f0000057b01000041000000e40010043f0000057c010000410000150c000104300000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b001b00000001001d000005460110009c000000850000213d000005da01000041000000800010043f0000000001000410000000840010043f00000000010004140000001b02000029000000040320008c0000060a0000c13d0000000103000031000000200130008c00000000040300190000002004008039000006350000013d0000000001000416000000000101004b000000850000c13d000000cb03000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0610008c00000000060000190000000106002039000000000662013f0000000106600190000005e10000613d000005940100004100000000001004350000002201000039000000040010043f00000595010000410000150c000104300000000002000416000001040430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d000005460220009c000000850000213d0000002402100370000000000202043b0000057d0420009c000000850000213d0000000002230049000005a404000041000001240520008c00000000050000190000000005044019000005a402200197000000000602004b000000000400a019000005a40220009c000000000405c019000000000204004b000000850000c13d0000004402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001a00000004001d0000057d0440009c000000850000213d0000002402200039001900000002001d0000001a02200029000000000232004b000000850000213d0000006402100370000000000402043b000000000204004b0000000002000019000000010200c039001800000004001d000000000224004b000000850000c13d0000008402100370000000000202043b001700000002001d000005460220009c000000850000213d000000a402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001600000004001d0000057d0440009c000000850000213d001400240020003d000000160200002900000005022002100000001402200029000000000232004b000000850000213d000000c402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001300000004001d0000057d0440009c000000850000213d001200240020003d000000130200002900000005022002100000001202200029000000000232004b000000850000213d000000e402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000141034f000000000101043b001100000001001d0000057d0110009c000000850000213d000f00240020003d000000110100002900000005011002100000000f01100029000000000131004b000000850000213d001500000007001d000000000100041a001000000001001d000dff000010019400000a890000c13d0000001001000029000000ff0110019000000000020000190000000102006039001c00000002001d00000000020004150000001c0220008a000e000500200218000000000101004b00000a8d0000c13d0000001001000029000005b20110019700000101011001bf000000000010041b000000400100043d000005b30210009c000007a60000213d0000012002100039000000400020043f000000ce02000039000a00000002001d000000000202041a00000546022001970000000002210436000000cf03000039000b00000003001d000000000303041a0000000000320435000000d002000039000900000002001d000000000202041a0000004003100039000c00000003001d0000000000230435000000d102000039000800000002001d000000000202041a00000060031000390000000000230435000000d202000039000700000002001d000000000202041a00000080031000390000000000230435000000d302000039000600000002001d000000000202041a000000a003100039000e00000003001d0000000000230435000000d402000039000500000002001d000000000302041a000000c0021000390000000000320435000000e003100039000000d504000039000400000004001d000000000404041a0000000000430435000000d603000039001000000003001d000000000603041a000000010760019000000001036002700000007f0430018f000000000403c0190000001f0340008c00000000030000190000000103002039000000000337004b0000039d0000c13d000000400300043d0000000005430436000000000707004b00000b8f0000613d00000010060000290000000000600435000000000604004b000000000600001900000b950000613d000005a50700004100000000060000190000000008560019000000000907041a000000000098043500000001077000390000002006600039000000000846004b0000046d0000413d00000b950000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d0000009702000039000000000202041a0000058c03000041000000800030043f000000840010043f00000000010004140000054602200197000000040320008c0000065f0000c13d0000000104000031000000200140008c00000020040080390000068a0000013d0000000002000416000000840430008c000000850000413d000000000202004b000000850000c13d0000002402100370000000000402043b000005460240009c000000850000213d0000004402100370000000000602043b0000057d0260009c000000850000213d0000002302600039000000000232004b000000850000813d0000000405600039000000000251034f000000000202043b0000057d0720009c000000850000213d00000000062600190000002406600039000000000636004b000000850000213d0000006406100370000000000606043b0000057d0760009c000000850000213d0000002307600039000000000737004b000000850000813d0000000407600039000000000771034f000000000707043b001b00000007001d0000057d0770009c000000850000213d00000024066000390000001b070000290000000507700210001700000006001d001a00000007001d001800000067001d000000180330006b000000850000213d0000000403100370000000000303043b001600000003001d0000006003400210000000a00030043f0000002003500039000000000131034f0000001f0320018f0000000504200272000004cc0000613d00000000050000190000000506500210000000000761034f000000000707043b000000b40660003900000000007604350000000105500039000000000645004b000004c40000413d000000000503004b000004db0000613d0000000504400210000000000141034f0000000303300210000000b404400039000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000b40120003900000000000104350000005301200039000000200300008a000000000331016f0000001401200039000000800010043f000005dd0230009c000007a60000813d0000008002300039000000400020043f00000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000006001100210000000c002300210000000000121019f000005de011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000000101043b0000001a020000290000003f02200039000005df02200197000000400300043d0000000002230019001a00000003001d000000000332004b000000000300001900000001030040390000057d0420009c000007a60000213d0000000103300190000007a60000c13d000000400020043f0000001b020000290000001a030000290000000002230436001900000002001d0000001803000029000000000230007c000000850000213d0000001b0200006b000005380000613d0000000202000367000000190300002900000017050000290000001806000029000000000452034f000000000404043b00000000034304360000002005500039000000000465004b000005100000413d0000001a020000290000000002020433000000000202004b000005380000613d001880100000003d0000000003000019001b00000003001d000000050230021000000019022000290000000002020433000000000321004b000005260000813d0000000000100435000000200020043f0000000001000414000005290000013d0000000000200435000000200010043f0000000001000414000005440210009c0000054401008041000000c00110021000000583011001c70000001802000029150a15050000040f0000000102200190000000850000613d000000000101043b0000001b0300002900000001033000390000001a020000290000000002020433000000000223004b0000051c0000413d000000160110006c00000000010000190000000101006039000005fd0000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b000005460210009c000000850000213d000000c002000039001b00000002001d000000400020043f000000800000043f000000a00000043f0000000000100435000000cd01000039000000200010043f00000040020000390000000001000019150a14ea0000040f001a00000001001d0000001b01000029150a0fed0000040f0000001a01000029000000000101041a0000054602100197000000c00020043f000000a001100270000000ff0110018f000000e00010043f000000400100043d0000000002210436000000e00300043d000000ff0330018f00000000003204350000054402000041000005440310009c00000000010280190000004001100210000005a3011001c70000150b0001042e0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b150a10ea0000040f000005fd0000013d000000440230008c000000850000413d0000000402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d001a00040020003d0000001a04100360000000000404043b001b00000004001d0000057d0440009c000000850000213d0000002404200039001900000004001d0000001b02400029000000000232004b000000850000213d0000002402100370000000000202043b0000057d0420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000141034f000000000101043b001800000001001d0000057d0110009c000000850000213d000000240220003900000018010000290000000501100210001700000001001d001600000002001d0000000001210019000000000131004b000000850000213d001500000007001d0000057e01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000000002000411001400000002001d000000000112004b0000081d0000c13d000000cf01000039000000000101041a000000000201004b0000083c0000c13d0000001b0100006b000008940000c13d000000d301000039000000000101041a001a00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001a0210006c000009b80000a13d000000d402000039000000000202041a000000000221004b000009d80000813d000000d002000039000000000202041a000000d903000039000000000303041a000000000223004b000009e80000813d000000d502000039000000000302041a000000000203004b000000000200001900000a720000613d000005460230019800000a6c0000c13d000005940100004100000000001004350000001201000039000000040010043f00000595010000410000150c000104300000054901000041000000800010043f0000002001000039000000840010043f000000a40010043f000005a901000041000000c40010043f000005d6010000410000150c00010430000000800010043f000000000505004b000006050000c13d000001000100008a000000000112016f000000a00010043f000000000104004b000000c001000039000000a001006039000007390000013d0000054402000041000005440310009c0000000001028019000000c001100210000000000209004b001b00000009001d000006c60000c13d0000000002040019000006ca0000013d000001000300008a000000000232016f000000a00020043f000000000101004b000000c001000039000000a001006039000006a00000013d0000000101000039000000010110018f000000400200043d00000000001204350000054401000041000005440320009c000000000201801900000040012002100000058b011001c70000150b0001042e0000000000300435000000020220008c0000072e0000813d000000a001000039000007390000013d0000054404000041000005440310009c0000000001048019000000c0011002100000058d011001c7150a15050000040f000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000006220000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000061a0000413d000000000705004b000006310000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000074e0000613d0000001f01400039000000600110018f00000080021001bf000000400020043f000000200330008c000000850000413d000000ce03000039000000000303041a000000a004100039000000800600043d001a00000006001d000005db0500004100000000005404350000054603300197000000a4041000390000000000340435000000c40310003900000000006304350000004403000039000000000032043500000100011001bf000000400010043f0000001b01000029150a13a60000040f000000400100043d0000001a02000029000000000021043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f0000054b011001c70000800d020000390000000203000039000005dc040000410000001b05000029000007260000013d0000054403000041000005440410009c0000000001038019000000c0011002100000058d011001c7150a15050000040f000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000006770000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000066f0000413d000000000705004b000006860000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000075e0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200240008c000000850000413d000000800200043d000000000021043500000040011002100000058b011001c70000150b0001042e000005a50200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b000006970000413d000000c001300039000000800210008a0000008001000039001300000001001d150a0ff80000040f000000400300043d001200000003001d000001000130003900000120020000390000000000210435000000e00130003900000015020000290000000000210435000000c00130003900000016020000290000000000210435000000a0013000390000001702000029000000000021043500000080013000390000001802000029000000000021043500000060013000390000001902000029000000000021043500000040013000390000001a02000029000000000021043500000020013000390000001b02000029000000000021043500000014010000290000054601100197000000000013043500000120023000390000001301000029150a100b0000040f0000001204000029000007440000013d0000059e011001c7000080090200003900000000030900190000000005000019150a15000000040f0000001b0900002900030000000103550000006001100270000105440010019d0000054401100197000000000301004b000006e40000c13d000000400100043d0000000102200190000007110000613d000000000091043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f0000054b011001c70000800d020000390000000103000039000005a004000041000007260000013d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b000000000500001900000001050040390000057d0630009c000007a60000213d0000000105500190000007a60000c13d000000400030043f0000001f0310018f000000000414043600000003050003670000000501100272000007010000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000006f90000413d000000000603004b000006d20000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000006d20000013d00000044021000390000059f030000410000000000320435000000240210003900000010030000390000010e0000013d000000ca02000039000000000302041a000005aa03300197000000000313019f000000000032041b000000800010043f00000544010000410000000002000414000005440320009c0000000002018019000000c001200210000005d7011001c70000800d020000390000000103000039000005d804000041150a15000000040f0000000101200190000000850000613d00000000010000190000150b0001042e150a101e0000040f00000000010000190000150b0001042e000005a20200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b000007300000413d000000c001300039000000800210008a0000008001000039001b00000001001d150a0ff80000040f0000002001000039000000400200043d001a00000002001d00000000021204360000001b01000029150a100b0000040f0000001a0400002900000000014100490000054402000041000005440310009c0000000001028019000005440340009c000000000402801900000040024002100000006001100210000000000121019f0000150b0001042e000000400200043d0000001f0430018f00000005053002720000075b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007530000413d000000000604004b000007840000c13d000007910000013d000000400200043d0000001f0430018f00000005053002720000076b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007630000413d000000000604004b000007910000613d000007840000013d000001000500008a000000000454016f000001c00040043f000000000303004b00000020040000390000000004006019000007a10000013d000000400200043d0000001f0430018f0000000505300272000007820000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000077a0000413d000000000604004b000007910000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000121019f0000150c00010430000005a5050000410000000004000019000000000605041a000001c007400039000000000067043500000001055000390000002004400039000000000634004b0000079a0000413d0000003f03400039000000200400008a000000000343016f000005a60430009c000007ac0000a13d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c00010430000001a003300039000000400030043f000001800020043f000000db05000039000000000205041a0000054602200198000007c00000c13d0000001b02000029000000a403200039000000000231034f000000000202043b000005a70420009c000007f80000a13d000000400100043d0000004402100039000005d403000041000000000032043500000024021000390000001f030000390000010e0000013d001000000005001d00120000000f001d00130000000e001d00140000000d001d00150000000c001d00160000000b001d00180000000a001d001700000009001d001100000008001d000001400100043d000f00000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000201043b0000000f0120006c00000c730000813d0000000201000367000001200300043d000000000232004b000008320000a13d0000001b020000290000004402200039000000000221034f000000000202043b000000c00300043d000000000223004b00000011080000290000001709000029000000180a000029000000160b000029000000150c000029000000140d000029000000130e000029000000120f0000290000001005000029000007b30000613d000000400100043d0000006402100039000005b50300004100000000003204350000004402100039000005b603000041000000000032043500000024021000390000002403000039000001c70000013d001000000005001d00120000000f001d00130000000e001d00140000000d001d00150000000c001d00160000000b001d00180000000a001d001700000009001d001100000008001d0000002004300039000000000341034f000000000303043b000005a70530009c0000080d0000a13d000000400100043d0000004402100039000005d303000041000000000032043500000024021000390000001d030000390000010e0000013d0000002005400039000000000451034f000000000404043b000005a80640009c000008240000a13d000000400100043d0000004402100039000005d2030000410000000000320435000005490200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000001130000013d000000400100043d00000044021000390000058e030000410000000000320435000000240210003900000014030000390000010e0000013d000000e00650008a000000000561034f000000000505043b000005460750009c000000850000213d000000000705004b0000089e0000c13d000000400100043d0000004402100039000005d1030000410000000000320435000000240210003900000017030000390000010e0000013d00000011080000290000001709000029000000180a000029000000160b000029000000150c000029000000140d000029000000130e000029000000120f0000290000001005000029000007b30000013d000000400500043d00000044025000390000001503000029000000000032043500000014020000290000054602200197000000240350003900000000002304350000058002000041000000000025043500000084025000390000001b060000290000000000620435000000040250003900000000001204350000001f0460018f001300000005001d000000a4035000390000001a0100002900000020051000390000000201000367000000000551034f00000005066002720000085d0000613d000000000700001900000005087002100000000009830019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000008550000413d000000000704004b0000086c0000613d0000000506600210000000000565034f00000000066300190000000304400210000000000706043300000000074701cf000000000747022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000474019f00000000004604350000001b04000029000000000343001900000000000304350000001f03400039000000200400008a000000000343016f00000013040000290000006404400039000000a00530003900000000005404350000000003320019000000a0023000390000001804000029000000000042043500000017040000290000001f0240018f0000000504400272000008890000613d0000001601100360000000c005300039000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000746004b000008810000413d000000000102004b0000088b0000613d00000000010004140000000002000410000000040420008c000008ff0000c13d0000000103000031000000200130008c00000000040300190000002004008039000009370000013d000000400100043d00000064021000390000058f03000041000000000032043500000044021000390000059003000041000000000032043500000024021000390000002103000039000001c70000013d0000004007600039000000000671034f000000000606043b000000000806004b0000094e0000c13d000000400100043d0000004402100039000005d003000041000007130000013d000000400500043d000000440250003900000015030000290000000000320435000000120200002900000546022001970000002403500039000000000023043500000580020000410000000000250435000000840250003900000019060000290000000000620435000000040250003900000000001204350000001f0460018f001100000005001d000000a403500039000000180100002900000020051000390000000201000367000000000551034f0000000506600272000008c80000613d000000000700001900000005087002100000000009830019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000008c00000413d000000000704004b000008d70000613d0000000506600210000000000565034f00000000066300190000000304400210000000000706043300000000074701cf000000000747022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000474019f00000000004604350000001904000029000000000343001900000000000304350000001f03400039000000200400008a000000000343016f00000011040000290000006404400039000000a00530003900000000005404350000000003320019000000a0023000390000001604000029000000000042043500000014040000290000001f0240018f0000000504400272000008f40000613d0000001301100360000000c005300039000000000600001900000005076002100000000008750019000000000771034f000000000707043b00000000007804350000000106600039000000000746004b000008ec0000413d000000000102004b000008f60000613d00000000010004140000000002000410000000040420008c000009570000c13d0000000103000031000000200130008c000000000403001900000020040080390000098f0000013d0000001306000029000000170460006900000000033400190000054404000041000005440560009c000000000504001900000000050640190000004005500210000000c003300039000005440630009c00000000030480190000006003300210000000000353019f000005440510009c0000000001048019000000c001100210000000000131019f150a15050000040f000000130a000029000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000009240000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000091c0000413d000000000705004b000009330000613d0000000506600210000000000761034f00000013066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000009a80000613d0000001f01400039000000600210018f0000001301200029000000000221004b000000000200001900000001020040390000057d0410009c000007a60000213d0000000102200190000007a60000c13d000000400010043f000000200230008c000000850000413d00000013020000290000000002020433000000000302004b0000000003000019000000010300c039000000000332004b000000850000c13d000000000202004b000005af0000c13d000009a50000013d0000002008700039000000000781034f000000000707043b000000000907004b000009bf0000c13d000000400100043d0000004402100039000005cf03000041000007130000013d0000001106000029000000140460006900000000033400190000054404000041000005440560009c000000000504001900000000050640190000004005500210000000c003300039000005440630009c00000000030480190000006003300210000000000353019f000005440510009c0000000001048019000000c001100210000000000131019f150a15050000040f000000110a000029000000000301001900000060033002700000054403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000097c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000009740000413d000000000705004b0000098b0000613d0000000506600210000000000761034f00000011066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000009c80000613d0000001f01400039000000600210018f0000001101200029000000000221004b000000000200001900000001020040390000057d0410009c000007a60000213d0000000102200190000007a60000c13d000000400010043f000000200230008c000000850000413d00000011020000290000000002020433000000000302004b0000000003000019000000010300c039000000000332004b000000850000c13d000000000202004b0000016e0000c13d00000044021000390000058103000041000009c40000013d000000400200043d0000001f0430018f0000000505300272000009b50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000009ad0000413d000000000604004b000007910000613d000007840000013d000000400100043d000000440210003900000591030000410000000000320435000000240210003900000018030000390000010e0000013d000000000967004b000009df0000a13d000000400100043d0000004402100039000005ce030000410000000000320435000000240210003900000019030000390000010e0000013d000000400200043d0000001f0430018f0000000505300272000009d50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000009cd0000413d000000000604004b000007910000613d000007840000013d000000400100043d00000044021000390000059203000041000000000032043500000024021000390000000e030000390000010e0000013d0000002008800039000000000981034f000000000909043b000000000a79004b000009ef0000a13d000000400100043d0000004402100039000005cd03000041000008090000013d000000400100043d000000440210003900000593030000410000000000320435000000240210003900000016030000390000010e0000013d000000000a240019000000000a3a004b00000a5e0000813d000000650a000039000000000a0a041a000005460aa00197000000000b000411000000000aba004b00000a680000c13d000000170b000029000000000a0b041a000005aa0aa0019700000000055a019f00000000005b041b000000600580008a000000000551034f000000000505043b000000180a00002900000000005a041b0000001605000029000000000065041b0000001505000029000000000075041b0000001405000029000000000095041b0000001305000029000000000025041b0000001202000029000000000032041b0000001902000029000000000042041b0000008002800039000000000221034f0000001a03000029000000230330008a000000000202043b000005a404300197000005a405000041000000000332004b00000000030000190000000003054019000005a406200197000000000746004b000000000500a019000000000446013f000005a40440009c000000000503c019000000000305004b000000850000613d0000001b032000290000000402300039000000000221034f000000000202043b0000057d0420009c000000850000213d00000000052000790000002404300039000005a406000041000000000754004b00000000070000190000000007062019000005a405500197000005a408400197000000000958004b0000000006008019000000000558013f000005a40550009c000000000607c019000000000506004b000000850000c13d0000001105000029000000000605041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f00000001066001900000039d0000c13d000000200650008c00000a540000413d0000001f062000390000000506600270000005a507600041000005a506000041000000200820008c0000000006078019000000110700002900000000007004350000001f055000390000000505500270000005a505500041000000000756004b00000a540000813d000000000006041b0000000106600039000000000756004b00000a500000413d0000001f0520008c00000b820000a13d00000011050000290000000000500435000000200500008a000000000652017000000bc30000c13d0000002404000039000005a50500004100000bcf0000013d000000400100043d0000006402100039000005b90300004100000000003204350000004402100039000005ba03000041000000000032043500000024021000390000002b03000039000001c70000013d000000400100043d0000004402100039000005a903000041000008150000013d000000db03000039000000000303041a000000140330014f0000054603300197000005464220012900000000322300d90000001a0110006a000000000121004b00000a7d0000a13d000000cc01000039000000000101041a000005970210019800000a810000c13d000000400100043d00000044021000390000059a03000041000009bb0000013d000000400100043d000000440210003900000596030000410000010b0000013d0000000102000039000000000302041a000000020330008c00000aad0000c13d000000400100043d00000044021000390000059903000041000007bc0000013d00000000010004150000001d0110008a000e000500100218001d00000000001d000005af0100004100000000001004390000000001000410000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000101004b00000af70000c13d0000001001000029000000ff0110018f000000010110008c000000000100001900000001010060390000000e020000290000000502200270000000000201001f00000afa0000c13d0000000d0100006b000004240000613d000001000100008a000000100110017f00000001011001bf000004270000013d0000000203000039000000000032041b0000054601100197150a10340000040f000000000400041600000000321400a9001a00000004001d000000000304004b00000ab90000613d0000001a432000fa000000000113004b00000bf10000c13d000005982120012a001800000001001d00000019020000290000001b03000029150a120d0000040f000005850100004100000000001004390000000001000412001b00000001001d0000000400100443000000240000044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b000000000200001900000b600000c13d000000ce01000039000000000101041a0000054601100197001b00000002001d0000001a02200069150a147c0000040f000000400100043d00000040021000390000001b03000029000000000032043500000020021000390000001a0300002900000000003204350000001802000029000000000021043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f00000587011001c70000800d020000390000000303000039000005880400004100000014050000290000000006000019150a15000000040f0000000101200190000000850000613d0000000101000039000000000011041b00000000010000190000150b0001042e0000000e010000290000000501100270000000000100001f000000400100043d0000006402100039000005b00300004100000000003204350000004402100039000005b103000041000000000032043500000024021000390000002e03000039000001c70000013d0000000101000039000000000201041a000000020220008c00000a850000613d0000000202000039000000000021041b0000001b0100002900000000001004350000001801000029000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000400200043d000005840320009c000007a60000213d000000000101043b0000004003200039000000400030043f000000000101041a00000546031001970000000004320436000000a001100270000000ff0210018f00000000002404350000001a01000029150a11290000040f001800000001001d00000017020000290000001903000029150a120d0000040f000005850100004100000000001004390000000001000412001900000001001d0000000400100443000000240000044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b000000000200001900000c7a0000c13d001900000002001d0000001a0420006900000000030004100000001b010000290000001202000029150a12bd0000040f000000400100043d00000040021000390000001903000029000000000032043500000020021000390000001a0300002900000000003204350000001802000029000000000021043500000544020000410000000003000414000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f00000587011001c70000800d020000390000000303000039000005880400004100000012050000290000001b06000029150a15000000040f0000000101200190000000850000613d00000af30000013d0019001a201000bd0000001a0200006b00000b670000613d00000019030000290000001a323000fa000000000112004b00000bf10000c13d000005850100004100000000001004390000001b0100002900000004001004430000002001000039000000240010044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001902000029000027103220011a001b00000002001d0000054601100197150a147c0000040f0000001b0300002900000000020300190000001a0130006c00000ad20000a13d00000bf10000013d000000000302004b000000000300001900000b870000613d000000000141034f000000000301043b0000000301200210000000010400008a000000000114022f000000000141013f000000000113016f0000000102200210000000000121019f00000bdd0000013d000001000700008a000000000676016f0000000000650435000000000404004b000000200600003900000000060060190000003f046000390003002000000092000000030540017f0000000004350019000000000554004b000000000500001900000001050040390000057d0640009c000007a60000213d0000000105500190000007a60000c13d000000400040043f00000100011000390000000000310435000000db01000039000200000001001d000000000101041a000005460110019800000c530000c13d00000002020003670000002401200370000000000101043b000000a401100039000000000312034f000000000303043b000005b70430009c000007b90000813d0000002001100039000000000412034f000000000404043b000005b70540009c000008060000813d0000002001100039000000000512034f000000000505043b000005b80650009c000008120000813d000000e00610008a000000000162034f000000000701043b000005460170009c000000850000213d000000400100043d000000000707004b00000cb80000c13d0000082c0000013d000005a505000041000000000800001900000000070800190000000008470019000000000881034f000000000808043b000000000085041b00000001055000390000002008700039000000000968004b00000bc50000413d0000004404700039000000000626004b00000bdb0000813d0000000306200210000000f80660018f000000010700008a000000000667022f000000000676013f0000000003340019000000000131034f000000000101043b000000000161016f000000000015041b000000010120021000000001011001bf0000001102000029000000000012041b0000001801000029000000000101041a001b00000001001d000005ab01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b00000bf70000c13d000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c00010430000005ac020000410000000000200439000000010110008a000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001b0110014f00000546011001970000001003000029000000000203041a000005aa02200197000000000121019f000000000013041b0000002002000039000000400100043d00000000022104360000001703000029000000000303041a000005460330019700000000003204350000001802000029000000000202041a000000400310003900000000002304350000001602000029000000000202041a000000600310003900000000002304350000001502000029000000000202041a000000800310003900000000002304350000001402000029000000000202041a000000a00310003900000000002304350000001302000029000000000202041a000000c00310003900000000002304350000001202000029000000000202041a000000e00310003900000000002304350000001902000029000000000202041a000001200300003900000120041000390000000000340435000001000310003900000000002304350000001102000029000000000402041a000000010540019000000001034002700000007f0230018f000000000203c0190000001f0320008c00000000030000190000000103002039000000000334013f00000001033001900000039d0000c13d000001400310003900000000002304350000016003100039000000000505004b00000c9e0000613d00000011040000290000000000400435000000000402004b000000000400001900000ca40000613d000005a50500004100000000040000190000000006340019000000000705041a000000000076043500000001055000390000002004400039000000000624004b00000c4b0000413d00000ca40000013d0000000001020433000100000001001d0000058201000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000010210006c00000c730000813d00000002020003670000000e030000290000000003030433000000000131004b00000cb70000a13d0000002401200370000000000101043b0000004401100039000000000112034f000000000101043b0000000c030000290000000003030433000000000113004b000007ee0000c13d00000ba90000013d000000400100043d0000004402100039000005b403000041000000000032043500000024021000390000001a030000390000010e0000013d0017001a201000bd0000001a0200006b00000c810000613d00000017030000290000001a323000fa000000000112004b00000bf10000c13d00000585010000410000000000100439000000190100002900000004001004430000002001000039000000240010044300000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000586011001c70000800502000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001702000029000027102420011a001900000004001d00000546031001970000001b010000290000001202000029150a12bd0000040f000000190300002900000000020300190000001a0130006c00000b3e0000a13d00000bf10000013d000001000500008a000000000454016f0000000000430435000000000202004b000000200400003900000000040060190000054402000041000005440310009c000000000102801900000040011002100000016003400039000005440430009c00000000030280190000006003300210000000000113019f0000000003000414000005440430009c0000000003028019000000c002300210000000000121019f0000059e011001c70000800d020000390000000103000039000005ad04000041000007260000013d00000ba90000013d0000004007600039000000000672034f000000000606043b000000000806004b00000cbe0000c13d000008a40000013d0000002008700039000000000782034f000000000707043b000000000907004b00000cc40000c13d000009540000013d000000000667004b00000cc70000a13d000009c20000013d0000002006800039000000000262034f000000000202043b000000000272004b00000ccd0000a13d000009e50000013d0000000002350019000000000242004b00000a5f0000813d000000000200041a0000ff000220019000000cd90000c13d0000006402100039000005cb0300004100000000003204350000004402100039000005cc0300004100000a640000013d000005bb0210009c000007a60000213d0000002402100039000005bc0300004100000000003204350000004402100039000000000300041400000060040000390000000000420435000005bd02000041000000000021043500000064021000390000000000020435000000040210003900000000000204350000054402000041000005440430009c0000000003028019000005440410009c00000000010280190000004001100210000000c002300210000000000112019f000005be011001c70000800602000039150a15000000040f000000010220019000000cfb0000613d000000000101043b000000000201004b00000d250000c13d0000000301000367000000010200003100000d000000013d000300000001035500000000020100190000006002200270000105440020019d0000054402200197000000400300043d0000001f0420018f000000050520027200000d0d0000613d000000000600001900000005076002100000000008730019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d050000413d000000000604004b00000d1c0000613d0000000505500210000000000151034f00000000055300190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440430009c0000000003018019000005440420009c000000000201801900000060012002100000004002300210000000000112019f0000150c0001043000000546031001970000009701000039000000000201041a000005aa02200197000000000232019f000000000021041b000005af010000410000000000100439000e00000003001d000000040030044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000101004b000000850000613d000000400200043d000005bf01000041000c00000002001d0000000001120436000100000001001d00000000010004140000000e02000029000000040220008c00000d580000613d0000054402000041000005440310009c00000000010280190000000c04000029000005440340009c00000000020440190000004002200210000000c001100210000000000121019f000005c0011001c70000000e02000029150a15000000040f00000000030100190000006003300270000105440030019d00000544033001970003000000010355000000010220019000000d6d0000613d0000000c010000290000057d0110009c000007a60000213d0000000c01000029000000400010043f0000001302000029000000160120006b00000d7d0000c13d0000001102000029000000160120006b00000d840000c13d0000001701000029000005460110019800000d960000c13d0000000c030000290000004401300039000005ca0200004100000000002104350000002401300039000000120200003900000d8a0000013d000000400200043d0000001f0430018f000000050530027200000d7a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d720000413d000000000604004b000007910000613d000007840000013d0000000c030000290000004401300039000005c102000041000000000021043500000024013000390000001b0200003900000d8a0000013d0000000c030000290000004401300039000005c202000041000000000021043500000024013000390000001d020000390000000000210435000005490100004100000000001304350000000401300039000000200200003900000000002104350000054401000041000005440230009c0000000003018019000000400130021000000550011001c70000150c0001043000000002020003670000002403200370000000000303043b0000000404300039000000000542034f000000000505043b000005460650009c000000850000213d0000000a07000029000000000607041a000005aa06600197000000000556019f000000000057041b0000002005400039000000000552034f000000000505043b0000000b06000029000000000056041b0000004005400039000000000552034f000000000505043b0000000906000029000000000056041b0000006005400039000000000552034f000000000505043b0000000806000029000000000056041b0000008005400039000000000552034f000000000505043b0000000706000029000000000056041b000000a005400039000000000552034f000000000505043b0000000606000029000000000056041b000000c005400039000000000552034f000000000505043b0000000506000029000000000056041b000000e005400039000000000552034f000000000505043b0000000406000029000000000056041b0000010004400039000000000442034f000000000404043b00000000050000310000000006350049000000230660008a000005a407000041000000000864004b00000000080000190000000008078019000005a406600197000005a409400197000000000a69004b0000000007008019000000000669013f000005a40660009c000000000708c019000000000607004b000000850000c13d00000000033400190000000404300039000000000442034f000000000404043b0000057d0640009c000000850000213d00000000054500490000002403300039000005a406000041000000000753004b00000000070000190000000007062019000005a405500197000005a408300197000000000958004b0000000006008019000000000558013f000005a40550009c000000000607c019000000000506004b000000850000c13d0000001005000029000000000605041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f00000001066001900000039d0000c13d000000200650008c00000e0d0000413d0000001f064000390000000506600270000005a507600041000005a506000041000000200840008c0000000006078019000000100700002900000000007004350000001f055000390000000505500270000005a505500041000000000756004b00000e0d0000813d000000000006041b0000000106600039000000000756004b00000e090000413d0000001f0540008c0000000105400210000000030640021000000e180000a13d00000010070000290000000000700435000000030840018000000e230000c13d000005a507000041000000000900001900000e2d0000013d000000000404004b000000000400001900000e1d0000613d000000000332034f000000000403043b000000010300008a000000000663022f000000000336013f000000000334016f000000000353019f00000e390000013d000005a5070000410000000009000019000000000a390019000000000aa2034f000000000a0a043b0000000000a7041b00000001077000390000002009900039000000000a89004b00000e250000413d000000000448004b00000e380000813d000000f80460018f000000010600008a000000000446022f000000000464013f0000000003390019000000000332034f000000000303043b000000000343016f000000000037041b00000001035001bf0000001004000029000000000034041b000000cb03000039000000000503041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f00000001055001900000039d0000c13d000000200540008c00000e5a0000413d0000001a070000290000001f057000390000000505500270000005a206500041000005a205000041000000200770008c000000000506801900000000003004350000001f044000390000000504400270000005a204400041000000000645004b00000e5a0000813d000000000005041b0000000105500039000000000645004b00000e560000413d0000001a050000290000001f0450008c0000000104500210000000030550021000000e660000a13d000000000030043500000003070000290000001a0770018000000e710000c13d000005a206000041000000000800001900000e7b0000013d0000001a0600006b000000000600001900000e6b0000613d0000001902200360000000000602043b000000010200008a000000000552022f000000000225013f000000000226016f000000000242019f00000e870000013d000005a20600004100000000080000190000001909800029000000000992034f000000000909043b000000000096041b00000001066000390000002008800039000000000978004b00000e730000413d0000001a0770006c00000e860000813d000000f80550018f000000010700008a000000000557022f000000000575013f0000001907800029000000000272034f000000000202043b000000000252016f000000000026041b00000001024001bf000000000023041b000005c304000041000000180500006b0000000004006019000000cc05000039000000000605041a000005c406600197000000000464019f000000000414019f000000000045041b00000015040000290000000c0700002900000000004704350000000a04000029000000000404041a0000054604400197000000800570003900000000004504350000000b04000029000000000404041a000000a00570003900000000004504350000000904000029000000000404041a000000c00570003900000000004504350000000804000029000000000404041a000000e00570003900000000004504350000000704000029000000000404041a000001000570003900000000004504350000000604000029000000000404041a000001200570003900000000004504350000000504000029000000000404041a000001400570003900000000004504350000000404000029000000000404041a000001800570003900000120060000390000000000650435000001600570003900000000004504350000001004000029000000000504041a000000010750019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000665013f00000001066001900000039d0000c13d0000000c08000029000001a0068000390000000000460435000001c006800039000000000707004b00000ed90000613d00000010050000290000000000500435000000000504004b000000000700001900000edf0000613d000005a50500004100000000070000190000000008670019000000000905041a000000000098043500000001055000390000002007700039000000000847004b00000ed10000413d00000edf0000013d000001000700008a000000000575016f0000000000560435000000000404004b00000020070000390000000007006019000000010820019000000001042002700000007f0540018f000000000504c01900000000066700190000000c0460006a000000010700002900000000004704350000001f0750008c00000000070000190000000107002039000000000772013f00000001077001900000039d0000c13d0000000006560436000000000708004b00000efe0000613d0000000000300435000000000205004b000000000200001900000f040000613d000005a20300004100000000020000190000000007260019000000000803041a000000000087043500000001033000390000002002200039000000000752004b00000ef60000413d00000f040000013d000001000300008a000000000232016f0000000000260435000000000205004b000000200200003900000000020060190000000c060000290000006003600039000000180500002900000000005304350000004003600039000000000013043500000000012400190000054402000041000005440360009c000000000602801900000040036002100000002001100039000005440410009c00000000010280190000006001100210000000000131019f0000000003000414000005440430009c0000000003028019000000c002300210000000000112019f0000059e011001c70000800d020000390000000103000039001300000003001d000005c504000041150a15000000040f0000000101200190000000850000613d000000160100006b00000f910000613d001a00000000001d0000001a010000290000000502100210001800140020002d00000002030003670000001801300360000000000101043b000005460410009c000000850000213d000000000401004b00000fe20000613d0000001204200029000000000443034f000000000404043b000005460540009c000000850000213d000000000504004b00000fe90000613d0000000f02200029000000000223034f000000000202043b000000ff0320008c000000850000213d000000400300043d001900000003001d000005840330009c000007a60000213d00000019050000290000004003500039000000400030043f0000000003450436001500000003001d00000000002304350000000000100435000000cd01000039001700000001001d000000200010043f0000000001000414000005440210009c0000054401008041000000c00110021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000190200002900000000020204330000054602200197000000000101043b000000000301041a000005c403300197000000000223019f00000015030000290000000003030433000000a0033002100000059703300197000000000232019f000000000021041b00000018010000290000000201100367000000000101043b001900000001001d000005460110009c000000850000213d000000190100002900000000001004350000001701000029000000200010043f0000000001000414000005440210009c0000054401008041000000c00110021000000583011001c70000801002000039150a15050000040f0000000102200190000000850000613d000000000101043b000000400200043d00000019030000290000000003320436000000000101041a00000546041001970000000000430435000000a001100270000000ff0110018f00000040032000390000000000130435000005440120009c000005440400004100000000020480190000000001000414000005440310009c00000000010480190000004002200210000000c001100210000000000121019f00000587011001c70000800d020000390000000103000039000005c604000041150a15000000040f0000000101200190000000850000613d0000001a020000290000000102200039001a00000002001d000000160120006c00000f240000413d0000000b01000029000000000101041a001a00000001001d000005ab01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b000000000201004b00000bf10000613d000005ac020000410000000000200439000000010110008a000000040010044300000544030000410000000001000414000005440210009c0000000001038019000000c0011002100000059d011001c70000800b02000039150a15050000040f000000010220019000000fe10000613d000000000101043b0000001a0110014f00000546011001970000000203000029000000000203041a000005aa02200197000000000112019f000000000013041b0000001b0100002900000546061001970000006501000039000000000201041a000005aa03200197000000000363019f000000000031041b0000000001000414000005440310009c0000054401008041000000c0011002100000059e011001c700000546052001970000800d020000390000000303000039000005ae04000041150a15000000040f0000000101200190000000850000613d0000000d0100006b000007290000c13d000000000200041a000005c901200197000000000010041b000000400100043d0000001303000029000000000031043500000544020000410000000005000414000005440450009c0000000005028019000005440410009c00000000010280190000004001100210000000c002500210000000000112019f0000054b011001c70000800d020000390000054c04000041000007260000013d000000000001042f000000400100043d0000004402100039000005c8030000410000000000320435000000240210003900000012030000390000010e0000013d000000400100043d0000004402100039000005c7030000410000010b0000013d000005e00210009c00000ff20000813d0000004001100039000000400010043f000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b000000000200001900000001020040390000057d0310009c000010050000213d0000000102200190000010050000c13d000000400010043f000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c0001043000000000430104340000000001320436000000000203004b000010170000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000532004b000010100000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000546061001970000006501000039000000000201041a000005aa03200197000000000363019f000000000031041b00000544010000410000000003000414000005440430009c0000000003018019000000c0013002100000059e011001c700000546052001970000800d020000390000000303000039000005ae04000041150a15000000040f0000000101200190000010320000613d000000000001042d00000000010000190000150c000104300002000000000002000000400a00043d000005e10200004100000000062a043600000000030004140000054602100197000000040120008c000010410000c13d0000000103000031000000a00130008c0000000004030019000000a004008039000010740000013d000100000006001d0000054401000041000005440430009c00000000030180190000054404a0009c00000000010a40190000004001100210000000c003300210000000000113019f000005c0011001c700020000000a001d150a15050000040f000000020a000029000000000301001900000060033002700000054403300197000000a00430008c0000000004030019000000a0040080390000001f0540018f0000000506400272000010600000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000010580000413d000000000705004b0000106f0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000010c70000613d00000001060000290000001f01400039000001e00110018f0000000002a10019000000000112004b000000000100001900000001010040390000057d0420009c000010a10000213d0000000101100190000010a10000c13d000000400020043f0000009f0130008c0000109f0000a13d00000000030a0433000005e20130009c0000109f0000213d0000006001a00039000000000501043300000000010604330000008004a000390000000004040433000005e20640009c0000109f0000213d000005a406000041000000000701004b00000000070000190000000007064019000005a408100197000000000908004b000000000600a019000005a40880009c000000000607c019000000000606004b000010a70000c13d000000000601004b000010a70000613d000000000604004b000010ad0000613d000000000505004b000010b00000613d000000000334004b000010b60000413d000000000001042d00000000010000190000150c00010430000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c000104300000004401200039000005e603000041000000000031043500000024012000390000000e03000039000010bb0000013d0000004401200039000005e503000041000010b80000013d0000004401200039000005e403000041000000000031043500000024012000390000001203000039000010bb0000013d0000004401200039000005e303000041000000000031043500000024012000390000000b030000390000000000310435000005490100004100000000001204350000000401200039000000200300003900000000003104350000054401000041000005440320009c0000000002018019000000400120021000000550011001c70000150c00010430000000400200043d0000001f0430018f0000000505300272000010d40000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000010cc0000413d000000000604004b000010e30000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000121019f0000150c000104300001000000000002000100000001001d000005ab01000041000000000010043900000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000057f011001c70000800b02000039150a15050000040f00000001022001900000110d0000613d000000000101043b000000000201004b0000110e0000613d000005ac020000410000000000200439000000010110008a000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800b02000039150a15050000040f00000001022001900000110d0000613d000000000101043b000000010110014f0000054601100197000000000001042d000000000001042f000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c00010430000000d502000039000000000202041a000000000302004b000011210000613d0000054602200198000011230000613d000000db03000039000000000303041a000000000113013f0000054601100197000005463220012900000000212100d9000000000001042d0000000001000019000000000001042d000005940100004100000000001004350000001201000039000000040010043f00000595010000410000150c000104300004000000000002000000000a020019000000000b010019000000400c00043d000005e10100004100000000061c043600000000010004140000054602300197000000040320008c000011380000c13d0000000103000031000000a00130008c0000000004030019000000a0040080390000116f0000013d000100000006001d00030000000b001d00040000000a001d0000054403000041000005440410009c00000000010380190000054404c0009c00000000030c40190000004003300210000000c001100210000000000131019f000005c0011001c700020000000c001d150a15050000040f000000020c000029000000000301001900000060033002700000054403300197000000a00430008c0000000004030019000000a0040080390000001f0540018f0000000506400272000011590000613d0000000007000019000000050870021000000000098c0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000011510000413d000000000705004b000011680000613d0000000506600210000000000761034f00000000066c00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000000040a000029000000030b000029000011ea0000613d00000001060000290000001f01400039000001e00210018f0000000001c20019000000000221004b000000000200001900000001020040390000057d0410009c000011be0000213d0000000102200190000011be0000c13d000000400010043f0000009f0230008c000011bc0000a13d00000000030c0433000005e20230009c000011bc0000213d0000006002c00039000000000502043300000000020604330000008004c000390000000004040433000005e20640009c000011bc0000213d000005a406000041000000000702004b00000000070000190000000007064019000005a408200197000000000908004b000000000600a019000005a40880009c000000000607c019000000000606004b000011c40000c13d000000000602004b000011c40000613d000000000604004b000011ca0000613d000000000505004b000011cd0000613d000000000334004b000011d30000413d0000000031b200a900000000030b004b000011b10000613d0000000043b100d9000000000223004b000011b30000c13d0000004e02a0008c000011b30000813d00000000020a004b000011b90000613d0000000a0300003900000001020000390000000104a001900000000004030019000000010400603900000000422400a90000000104a0008c000000010aa0027000000000433300a9000011a50000213d000000000302004b000011e40000613d00000000212100d9000000000001042d0000004d02a0008c000011a10000a13d000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c00010430000000010200003900000000212100d9000000000001042d00000000010000190000150c00010430000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c000104300000004402100039000005e603000041000000000032043500000024021000390000000e03000039000011d80000013d0000004402100039000005e503000041000011d50000013d0000004402100039000005e403000041000000000032043500000024021000390000001203000039000011d80000013d0000004402100039000005e303000041000000000032043500000024021000390000000b030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000005940100004100000000001004350000001201000039000000040010043f00000595010000410000150c00010430000000400200043d0000001f0430018f0000000505300272000011f70000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000011ef0000413d000000000604004b000012060000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000121019f0000150c000104300007000000000002000700000001001d000000000103004b0000121d0000613d0000000201000367000000000421034f000000000404043b000005e704400197000005e80440009c000012a40000c13d000000210330008c000012ab0000c13d0000000102200039000000000121034f000000000101043b0000121f0000013d000000d101000039000000000101041a000400000001001d0000000001000411000600000001001d0000000000100435000000da01000039000500000001001d000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000012900000613d000000000101043b000000000201041a0000000701200029000000000221004b00000000020000190000000102004039000000010220008c0000128a0000613d000000040110006c000012920000213d000000d904000039000000000604041a0000000705600029000000000165004b0000000001000019000000010100403900000001011001900000128a0000c13d000000d001000039000000000101041a000000000115004b000012960000213d000000d201000039000000000101041a000000070110006c0000129d0000213d000000d701000039000000000201041a0001000100000092000000010320006c0000128a0000613d000200000006001d000300000005001d000400000004001d0000000102200039000000000021041b000000060100002900000000001004350000000501000029000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000012900000613d000000000101043b000000000101041a000000000101004b0000000404000029000000030500002900000002060000290000126f0000c13d000000d801000039000000000201041a000000010320006c0000128a0000613d0000000102200039000000000021041b000000000165004b0000128a0000413d000000000054041b000000060100002900000000001004350000000501000029000000200010043f00000544010000410000000002000414000005440320009c0000000002018019000000c00120021000000583011001c70000801002000039150a15050000040f0000000102200190000012900000613d000000000101043b000000000301041a0000000702300029000000000332004b0000000003000019000000010300403900000001033001900000128a0000c13d000000000021041b000000000001042d000005940100004100000000001004350000001101000039000000040010043f00000595010000410000150c0001043000000000010000190000150c00010430000000400100043d0000004402100039000005ed03000041000012990000013d000000400100043d0000004402100039000005ec03000041000000000032043500000024021000390000001b03000039000012b10000013d000000400100043d0000004402100039000005eb03000041000000000032043500000024021000390000001603000039000012b10000013d000000400100043d0000004402100039000005e903000041000000000032043500000024021000390000000c03000039000012b10000013d000000400100043d0000004402100039000005ea030000410000000000320435000000240210003900000017030000390000000000320435000005490200004100000000002104350000000402100039000000200300003900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c000104300005000000000002000000400600043d000000640560003900000000004504350000054603300197000000440460003900000000003404350000002004600039000005ee03000041000300000004001d000000000034043500000546022001970000002403600039000000000023043500000064020000390000000000260435000005ef0260009c000013560000813d0000054603100197000000a002600039000000400020043f000005f00160009c000013560000213d000000e001600039000000400010043f0000002001000039000200000001001d000100000002001d0000000000120435000400000006001d000000c001600039000005f1020000410000000000210435000005af010000410000000000100439000500000003001d000000040030044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f00000001022001900000135e0000613d000000000101043b000000000101004b0000135f0000613d0000000401000029000000000601043300000000010004140000000502000029000000040320008c000013260000c13d00000001020000390000000104000031000000000104004b0000133b0000613d0000001f01400039000000200300008a000000000131016f0000003f01100039000000000131016f000000400300043d0000000001130019000000000531004b000000000500001900000001050040390000057d0610009c000013560000213d0000000105500190000013560000c13d000000400010043f0000001f0540018f000000000143043600000003060003670000000504400272000013160000613d000000000700001900000005087002100000000009810019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b0000130e0000413d000000000705004b0000133d0000613d0000000504400210000000000646034f00000000044100190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000133d0000013d00000544030000410000000305000029000005440450009c00000000050380190000004004500210000005440560009c00000000060380190000006005600210000000000545019f000005440410009c0000000001038019000000c001100210000000000115019f150a15000000040f000000010220018f00030000000103550000006001100270000105440010019d0000054404100197000000000104004b000012f90000c13d000000600300003900000080010000390000000003030433000000000202004b000013710000613d000000000203004b000013550000613d000005a4020000410000001f0430008c00000000040000190000000004022019000005a403300197000000000503004b0000000002008019000005a40330009c000000000204c019000000000202004b0000135c0000613d0000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000135c0000c13d000000000101004b000013880000613d000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c0001043000000000010000190000150c00010430000000000001042f000000400100043d0000004402100039000005f403000041000000000032043500000024021000390000001d030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000000000203004b0000139d0000c13d000000400300043d000500000003001d0000054901000041000000000013043500000004013000390000000202000029000000000021043500000024023000390000000101000029150a100b0000040f000000050400002900000000014100490000054402000041000005440310009c0000000001028019000005440340009c000000000402801900000040024002100000006001100210000000000121019f0000150c00010430000000400100043d0000006402100039000005f20300004100000000003204350000004402100039000005f303000041000000000032043500000024021000390000002a030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c000000000102801900000040011002100000054a011001c70000150c000104300000054402000041000005440430009c0000000003028019000005440410009c000000000102801900000040011002100000006002300210000000000112019f0000150c000104300004000000000002000400000002001d0000054604100197000000400300043d000005e00130009c0000142c0000813d0000004001300039000000400010043f0000002001300039000005f10200004100000000002104350000002001000039000200000001001d000100000003001d0000000000130435000005af010000410000000000100439000300000004001d000000040040044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f0000000102200190000014340000613d000000000101043b000000000101004b000014350000613d0000000401000029000000006301043400000000010004140000000302000029000000040420008c000013fd0000c13d00000001020000390000000104000031000000000104004b000014110000613d0000001f01400039000000200300008a000000000131016f0000003f01100039000000000131016f000000400300043d0000000001130019000000000531004b000000000500001900000001050040390000057d0610009c0000142c0000213d00000001055001900000142c0000c13d000000400010043f0000001f0540018f000000000143043600000003060003670000000504400272000013ed0000613d000000000700001900000005087002100000000009810019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000013e50000413d000000000705004b000014130000613d0000000504400210000000000646034f00000000044100190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000014130000013d0000054404000041000005440530009c00000000030480190000006003300210000005440560009c00000000060480190000004005600210000000000553019f000005440310009c0000000001048019000000c001100210000000000115019f150a15000000040f000000010220018f00030000000103550000006001100270000105440010019d0000054404100197000000000104004b000013d00000c13d000000600300003900000080010000390000000003030433000000000202004b000014470000613d000000000203004b0000142b0000613d000005a4020000410000001f0430008c00000000040000190000000004022019000005a403300197000000000503004b0000000002008019000005a40330009c000000000204c019000000000202004b000014320000613d0000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000014320000c13d000000000101004b0000145e0000613d000000000001042d000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c0001043000000000010000190000150c00010430000000000001042f000000400100043d0000004402100039000005f403000041000000000032043500000024021000390000001d030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c0000000001028019000000400110021000000550011001c70000150c00010430000000000203004b000014730000c13d000000400300043d000400000003001d0000054901000041000000000013043500000004013000390000000202000029000000000021043500000024023000390000000101000029150a100b0000040f000000040400002900000000014100490000054402000041000005440310009c0000000001028019000005440340009c000000000402801900000040024002100000006001100210000000000121019f0000150c00010430000000400100043d0000006402100039000005f20300004100000000003204350000004402100039000005f303000041000000000032043500000024021000390000002a030000390000000000320435000005490200004100000000002104350000000402100039000000020300002900000000003204350000054402000041000005440310009c000000000102801900000040011002100000054a011001c70000150c000104300000054402000041000005440430009c0000000003028019000005440410009c000000000102801900000040011002100000006002300210000000000112019f0000150c000104300003000000000002000100000002001d000200000001001d0000009701000039000000000101041a000005af0200004100000000002004390000054601100197000300000001001d000000040010044300000544010000410000000002000414000005440320009c0000000002018019000000c0012002100000059d011001c70000800202000039150a15050000040f0000000102200190000014bd0000613d000000000101043b000000000101004b000014be0000613d000000400500043d000005f5010000410000000000150435000000020100002900000546011001970000000402500039000000000012043500000000010004140000000304000029000000040240008c000014b90000613d0000054402000041000005440310009c0000000001028019000005440350009c000200000005001d00000000020540190000004002200210000000c001100210000000000121019f0000000103000029000000000203004b000014ae0000613d000005f6011001c700008009020000390000000005000019000014b00000013d00000595011001c70000000002040019150a15000000040f000300000001035500000000030100190000006003300270000105440030019d000005440330019700000001022001900000000205000029000014c60000613d000005f70150009c000014c00000813d000000400050043f000000000001042d000000000001042f00000000010000190000150c00010430000005940100004100000000001004350000004101000039000000040010043f00000595010000410000150c00010430000000400200043d0000001f0430018f0000000505300272000014d30000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000014cb0000413d000000000604004b000014e20000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000054401000041000005440420009c000000000201801900000040012002100000006002300210000000000112019f0000150c00010430000000000001042f0000054403000041000005440410009c00000000010380190000004001100210000005440420009c00000000020380190000006002200210000000000112019f0000000002000414000005440420009c0000000002038019000000c002200210000000000112019f0000059e011001c70000801002000039150a15050000040f0000000102200190000014fe0000613d000000000101043b000000000001042d00000000010000190000150c0001043000001503002104210000000102000039000000000001042d0000000002000019000000000001042d00001508002104230000000102000039000000000001042d0000000002000019000000000001042d0000150a000004320000150b0001042e0000150c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff616c697a696e6700000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e69746908c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000200000000000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498dac4fd790edde0c2ab54e0618fa7d2d818b20fe5504b25328f64c7246121e0eb00000002000000000000000000000000000000c0000001000000000000000000666565526563697069656e74203d3d20300000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000008dbc834200000000000000000000000000000000000000000000000000000000cc8f918100000000000000000000000000000000000000000000000000000000e6064de200000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000ffa1ad7400000000000000000000000000000000000000000000000000000000e6064de300000000000000000000000000000000000000000000000000000000ea51764500000000000000000000000000000000000000000000000000000000cc8f918200000000000000000000000000000000000000000000000000000000e2982c2100000000000000000000000000000000000000000000000000000000e49248d500000000000000000000000000000000000000000000000000000000a9e0c9c200000000000000000000000000000000000000000000000000000000b4bd9e2600000000000000000000000000000000000000000000000000000000b4bd9e2700000000000000000000000000000000000000000000000000000000c3b88b4200000000000000000000000000000000000000000000000000000000a9e0c9c300000000000000000000000000000000000000000000000000000000ab803a76000000000000000000000000000000000000000000000000000000008dbc83430000000000000000000000000000000000000000000000000000000092a85fde00000000000000000000000000000000000000000000000000000000a04748f600000000000000000000000000000000000000000000000000000000621aa9240000000000000000000000000000000000000000000000000000000075f620ab00000000000000000000000000000000000000000000000000000000826b90f100000000000000000000000000000000000000000000000000000000826b90f2000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000075f620ac0000000000000000000000000000000000000000000000000000000079502c5500000000000000000000000000000000000000000000000000000000621aa92500000000000000000000000000000000000000000000000000000000669ad09200000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000031ab05170000000000000000000000000000000000000000000000000000000047535d7a0000000000000000000000000000000000000000000000000000000047535d7b000000000000000000000000000000000000000000000000000000004cc233a80000000000000000000000000000000000000000000000000000000031ab05180000000000000000000000000000000000000000000000000000000031b3eb940000000000000000000000000000000000000000000000000000000001c3753f000000000000000000000000000000000000000000000000000000001be19560000000000000000000000000000000000000000000000000000000002ddbd13a322e3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff938b5f3299a1f3b18e458564efbb950733226014eece26fae19012d850b48d83020000020000000000000000000000000000000400000000000000000000000001c3753f00000000000000000000000000000000000000000000000000000000626164206d65726b6c652070726f6f6620666f722073616c6500000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391320200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000020000000000000000000000000000000000006000000000000000000000000000f93dbdb72854b6b6fb35433086556f2635fc83c37080c667496fecfa650fb4696e76616c6964207061796d656e7420746f6b656e000000000000000000000000000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000020000000000000000000000000e3a9db1a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000004d75737420627579207769746820616e20454f41000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064617461206e6f74207065726d6974746564206f6e207075626c69632073616c73616c6520686173206e6f74207374617274656420796574000000000000000073616c652068617320656e64656400000000000000000000000000000000000073616c6520627579206c696d69742072656163686564000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006e6f7420796f7572207475726e207965740000000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400005265656e7472616e637947756172643a207265656e7472616e742063616c6c006e6174697665207061796d656e74732064697361626c6564000000000000000000000000000000000000000000000000000000400000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39020000020000000000000000000000000000002400000000000000000000000002000000000000000000000000000000000000000000000000000000000000005472616e73666572206661696c65642e000000000000000000000000000000003b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd20000000000000000000000000000000000000060000000800000000000000000a7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb00000000000000000000000000000000000000400000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd000000000000000000000000000000000000000000000000fffffffffffffe5f00000000000000000000000000000000000000000000000000000000f48657000000000000000000000000000000000000000000000000000000000000093a804f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ffffffffffffffffffffffff000000000000000000000000000000000000000042cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd180b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3f19e3240beb82d0dfa0a35ed50201f0ac38ea92b9b29450527293aa8ccd0979b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e01806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c726561ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000fffffffffffffedf73616c65206973206f7665723a2063616e6e6f74207570617465000000000000746172740000000000000000000000000000000000000000000000000000000065646974696e672073616c654d6178696d756d2061667465722073616c65207300000000000000000000000000000000000000000000000000000000f48657010000000000000000000000000000000000000000000000000000000000093a816178517565756554696d6500000000000000000000000000000000000000000073616c65206d757374206265206f70656e20666f72206174206c65617374206d000000000000000000000000000000000000000000000000ffffffffffffff7b010000bf8042c7a73f97bf987e5e255a28fcb320c2ced98580994ffc1d20849d9c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd02000000000000000000000000000000000000840000000000000000000000008129fc1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000746f6b656e20616e64206f7261636c65206c656e6774687320213d0000000000746f6b656e20616e6420646563696d616c73206c656e6774687320213d0000000000000000000000000000010000000000000000000000000000000000000000ffffffffffffffffffffff000000000000000000000000000000000000000000b08510a4a112663ff701fcf43686a47fd456cb1a471dd63d662b73612cf700b31573dfedb5172e215558f8ffa409a71a5e42c596c15c482a04ff548914ebfa77746f6b656e206f7261636c65203d3d20300000000000000000000000000000007061796d656e7420746f6b656e203d3d20300000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6e6174697665206f7261636c65203d3d203000000000000000000000000000006e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206970757263686173654d696e696d756d203e20757365724d6178696d756d000000757365724d6178696d756d203e2073616c654d6178696d756d00000000000000757365724d6178696d756d203d3d20300000000000000000000000000000000073616c654d6178696d756d203d3d203000000000000000000000000000000000726563697069656e74203d3d20616464726573732830290000000000000000006d61782071756575652074696d65203e20363034383030202831207765656b29656e64203e203431303234343438303020284a616e20312032313030290000007374617274203e203431303234343438303020284a616e20312032313030290051cff8d90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000008000000000000000000200000000000000000000000000000000000020000000800000000000000000bfbef9c12fc2cf7df9f0b7679d5863e31a093e9c2c8d5dd9de1ddca31a0748284469737472696275746f72203d3d20616464726573732830290000000000000070a0823100000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000f4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d000000000000000000000000000000000000000000000000ffffffffffffff800200000000000000000000000000000000000000000000a000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffffc0feaf968c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff7374616c65207072696365000000000000000000000000000000000000000000726f756e64206e6f7420636f6d706c6574650000000000000000000000000000616e73776572203d3d20300000000000000000000000000000000000000000006e65676174697665207072696365000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000756e6b6e6f776e2064617461000000000000000000000000000000000000000064617461206c656e67746820213d203333206279746573000000000000000000707572636861736520756e646572206d696e696d756d00000000000000000000707572636861736520657863656564732073616c65206c696d697400000000007075726368617365206578636565647320796f7572206c696d6974000000000023b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff60000000000000000000000000000000000000000000000000ffffffffffffff1f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000f340fa0100000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000007c4bd3c54158dedf547ede1ccbf5e5476137795e975b408b576a380bdd3cee6e", + "bytecode": "0x0004000000000002001d000000000002000000000301001900000060043002700000052d03400197000300000031035500020000000103550000052d0040019d00000001022001900000005c0000c13d0000008008000039000000400080043f000000040230008c000000850000413d000000000201043b000000e0022002700000053a0420009c000000870000213d0000054e0420009c000000ac0000213d000005580420009c000001bf0000a13d000005590420009c000002100000213d0000055c0420009c000002840000613d0000055d0220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b001b052f0010019b0000052f0110009c000000850000213d0000009701000039000000000101041a000005980200004100000000002004390000052f01100197001a00000001001d00000004001004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000586011001c7000080020200003914ad14a80000040f000000010220019000000f840000613d000000000101043b000000000101004b000000850000613d000000400500043d000005be01000041000000000015043500000004015000390000001b02000029000000000021043500000000010004140000001a02000029000000040320008c000000570000613d0000052d040000410000052d0310009c00000000010480190000052d0350009c00000000040540190000004003400210000000c001100210000000000131019f0000057e011001c7001b00000005001d14ad14a30000040f0000001b05000029000000000301001900000060033002700001052d0030019d0000052d03300197000300000001035500000001022001900000074d0000613d000005660150009c0000077e0000213d000000400050043f0000000001000019000014ae0001042e0000000002000416000000000202004b000000850000c13d0000001f023000390000052e02200197000000c002200039000000400020043f0000001f0230018f00000005043002720000006f0000613d00000000050000190000000506500210000000000761034f000000000707043b000000c00660003900000000007604350000000105500039000000000645004b000000670000413d000000000502004b0000007e0000613d0000000504400210000000000141034f0000000302200210000000c004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000400130008c000000850000413d000000c00300043d000000e00400043d0000052f054001970000052f0140009c000000e30000a13d0000000001000019000014af000104300000053b0420009c0000011a0000213d000005450420009c000001ca0000a13d000005460420009c000002270000213d000005490420009c0000029f0000613d0000054a0120009c000000850000c13d0000000001000416000000000101004b000000850000c13d00000585010000410000000000100439000000000100041000000004001004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000586011001c70000800a0200003914ad14a80000040f000000010220019000000f840000613d000000000901043b000000ce01000039000000000201041a00000000010004140000052f04200197000000040240008c000005c30000c13d00000001020000390000000101000031000006a80000013d0000054f0420009c000001de0000a13d000005500420009c000002420000213d000005530420009c000002aa0000613d000005540120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d603000039000000000203041a000000010420019000000001052002700000007f0150018f000000000105c0190000001f0510008c00000000050000190000000105002039000000000552013f0000000105500190000003890000c13d000000d505000039000000000c05041a000000d405000039000000000b05041a000000d305000039000000000a05041a000000d205000039000000000905041a000000d105000039000000000805041a000000d005000039000000000705041a000000cf05000039000000000605041a000000ce05000039000000000d05041a000000800010043f000000000404004b001b00000006001d001a00000007001d001900000008001d001800000009001d00170000000a001d00160000000b001d00150000000c001d00140000000d001d000005cc0000613d0000000000300435000000000201004b0000066d0000c13d000000a001000039000006780000013d000000000100041a0000ff0002100190000001aa0000c13d000000ff0210018f000000ff0220008c000001040000613d000000ff011001bf000000000010041b000000ff01000039000000400200043d00000000001204350000052d01000041001a00000003001d0000000003000414001900000004001d0000052d0430009c00000000030180190000052d0420009c00000000020180190000004001200210000000c002300210000000000112019f00000534011001c70000800d0200003900000001030000390000053504000041001b00000005001d14ad14a30000040f00000019040000290000001a030000290000001b050000290000000101200190000000850000613d000000400100043d000000000203004b000002640000613d000000000205004b000002640000c13d000000440210003900000538030000410000000000320435000000240210003900000011030000390000000000320435000005320200004100000000002104350000000402100039000000200300003900000000003204350000052d020000410000052d0310009c0000000001028019000000400110021000000539011001c7000014af000104300000053c0420009c000001fa0000a13d0000053d0420009c0000024b0000213d000005400420009c000002b50000613d000005410220009c000000850000c13d0000000002000416000000840430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d0000052f0220009c000000850000213d0000002402100370000000000202043b001a00000002001d0000004402100370000000000202043b000005660420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000406200039000000000461034f000000000404043b001900000004001d000005660440009c000000850000213d0000002404200039001800000004001d0000001902400029000000000232004b000000850000213d0000006402100370000000000202043b000005660420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000504043b000005660450009c000000850000213d000000240220003900000005045002100000000007240019000000000337004b000000850000213d000000cf03000039000000000303041a000000000703004b000008630000c13d000000190100006b0000083f0000c13d000000d301000039000000000101041a001700000001001d0000056b0100004100000000001004390000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056c011001c70000800b0200003914ad14a80000040f000000010220019000000f840000613d000000000101043b000000170210006c000009490000a13d000000d402000039000000000202041a000000000221004b000009690000813d000000d002000039000000000202041a000000d903000039000000000303041a000000000223004b000009790000813d0000000002000411001600000002001d000000d502000039000000000302041a000000000203004b0000000002000019000001830000613d0000052f02300198000005aa0000613d000000db03000039000000000303041a000000160330014f0000052f033001970000052f4220012900000000322300d9000000170110006a000000000121004b00000a120000a13d0000001b010000290000000000100435000000cd01000039001700000001001d000000200010043f0000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056d011001c7000080100200003914ad14a80000040f0000000102200190000000850000613d000000400200043d0000056e0320009c0000077e0000213d000000000101043b0000004003200039000000400030043f000000000101041a000000a003100270000000ff0330018f000000200420003900000000003404350000052f01100198000000000012043500000a9a0000c13d000000400100043d000000440210003900000573030000410000000000320435000000240210003900000015030000390000010e0000013d000000400100043d000000640210003900000530030000410000000000320435000000440210003900000531030000410000000000320435000000240210003900000027030000390000000000320435000005320200004100000000002104350000000402100039000000200300003900000000003204350000052d020000410000052d0310009c0000000001028019000000400110021000000533011001c7000014af000104300000055e0420009c000004770000613d0000055f0420009c000003630000613d000005600120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d901000039000002230000013d0000054b0420009c000005280000613d0000054c0120009c0000037a0000613d0000054d0120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000d901000039000000000101041a000000d802000039000000000202041a000000d703000039000000000303041a000000800030043f000000a00020043f000000c00010043f0000058a01000041000014ae0001042e000005550420009c000005510000613d000005560420009c0000038f0000613d000005570120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000006501000039000000000201041a0000052f052001970000000003000411000000000335004b000005b00000c13d0000059302200197000000000021041b0000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000587011001c70000800d02000039000000030300003900000597040000410000000006000019000006fe0000013d000005420420009c0000055a0000613d000005430420009c000004610000613d000005440220009c000000850000c13d0000000002000416000000640330008c000000850000413d000000000202004b000000850000c13d0000004402100370000000000302043b0000052f0230009c000000850000213d0000000402100370000000000402043b0000002401100370000000000201043b000000000104001914ad10cc0000040f000005d50000013d0000055a0420009c000002be0000613d0000055b0220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b0000052f0210009c000000850000213d0000000000100435000000da01000039000000200010043f0000004002000039000000000100001914ad148d0000040f000000000101041a000000800010043f0000057401000041000014ae0001042e000005470420009c000002e20000613d000005480220009c000000850000c13d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b0000052f0210009c000000850000213d0000000000100435000000cd01000039000000200010043f0000004002000039000000000100001914ad148d0000040f000000000101041a0000052f02100197000000800020043f000000a001100270000000ff0110018f000000a00010043f0000058401000041000014ae0001042e000005510420009c000002ff0000613d000005520120009c000000850000c13d0000000001000416000000000101004b000000850000c13d0000006501000039000002b90000013d0000053e0420009c000003460000613d0000053f0120009c000000850000c13d0000000001000416000000000101004b000000850000c13d000000c001000039000000400010043f0000000301000039000000800010043f0000056101000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e00200003914ad0fae0000040f000000c00110008a0000052d020000410000052d0310009c0000000001028019000000600110021000000562011001c7000014ae0001042e000000a00040043f000000800030043f00000000003104350000052d0200004100000000030004140000052d0430009c00000000030280190000052d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000534011001c70000800d020000390000000203000039001b00000003001d000005360400004114ad14a30000040f0000000101200190000000850000613d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a00010044300000100002004430000001b0100002900000120001004430000053701000041000014ae0001042e0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b0000052f0210009c000000850000213d0000006502000039000000000202041a0000052f022001970000000003000411000000000232004b000005b00000c13d000000000201004b000006ef0000c13d0000053201000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f000005c201000041000000c40010043f000005bf01000041000014af000104300000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b0000052f0210009c000000850000213d14ad10b70000040f000005d50000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b0000052f0210009c000000850000213d14ad0fd70000040f000005d50000013d0000000001000416000000000101004b000000850000c13d000000cc01000039000000000101041a0000052f01100197000000800010043f0000057401000041000014ae0001042e0000000001000416000000000101004b000000850000c13d000000d301000039000000000101041a001b00000001001d0000056b0100004100000000001004390000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056c011001c70000800b0200003914ad14a80000040f000000010220019000000f840000613d000000000101043b0000001b0210006b0000000002000019000002e00000813d000000d402000039000000000202041a000000000112004b0000000002000019000002e00000a13d000000d001000039000000000101041a000000d902000039000000000202041a000000000112004b00000000020000190000000102004039000000010120018f000005d50000013d0000000001000416000000000101004b000000850000c13d000000d401000039000000000101041a001b00000001001d0000056b0100004100000000001004390000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056c011001c70000800b0200003914ad14a80000040f000000010220019000000f840000613d000000000101043b0000001b0110006b000005d30000a13d000000d001000039000000000101041a000000d902000039000000000202041a000000000112004b00000000010000190000000101008039000005d40000013d0000000002000416000000240430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d000005660220009c000000850000213d0000001b0430006a0000058d02000041000001240340008c00000000030000190000000003024019001a00000004001d0000058d04400197000000000504004b000000000200a0190000058d0440009c000000000203c019000000000202004b000000850000c13d000001a002000039000000400020043f000000ce09000039000000000309041a0000052f03300197000000800030043f000000cf0a00003900000000030a041a000000a00030043f000000d00b00003900000000030b041a000000c00030043f000000d10c00003900000000030c041a000000e00030043f000000d20d00003900000000030d041a000001000030043f000000d30e00003900000000030e041a000001200030043f000000d40f00003900000000030f041a000001400030043f000000d507000039000000000307041a000001600030043f000000d608000039000000000408041a000000010540019000000001064002700000007f0360018f000000000306c0190000001f0630008c00000000060000190000000106002039000000000664013f0000000106600190000003890000c13d000001a00030043f000000000505004b001900000007001d000007460000613d0000000000800435000000000403004b000007700000c13d0000002003000039000007840000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b0000052f0210009c000000850000213d0000006502000039000000000202041a0000052f022001970000000003000411000000000232004b000005b00000c13d000000000201004b000007030000c13d0000053201000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000056301000041000000c40010043f0000056401000041000000e40010043f0000056501000041000014af000104300000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b001b00000001001d0000052f0110009c000000850000213d000005c301000041000000800010043f0000000001000410000000840010043f00000000010004140000001b02000029000000040320008c000005e20000c13d0000000103000031000000200130008c000000000403001900000020040080390000060d0000013d0000000001000416000000000101004b000000850000c13d000000cb03000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0610008c00000000060000190000000106002039000000000662013f0000000106600190000005b90000613d0000057d0100004100000000001004350000002201000039000000040010043f0000057e01000041000014af000104300000000002000416000001040430008c000000850000413d000000000202004b000000850000c13d0000000402100370000000000202043b001b00000002001d0000052f0220009c000000850000213d0000002402100370000000000202043b000005660420009c000000850000213d00000000022300490000058d04000041000001240520008c000000000500001900000000050440190000058d02200197000000000602004b000000000400a0190000058d0220009c000000000405c019000000000204004b000000850000c13d0000004402100370000000000202043b000005660420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001a00000004001d000005660440009c000000850000213d0000002402200039001900000002001d0000001a02200029000000000232004b000000850000213d0000006402100370000000000402043b000000000204004b0000000002000019000000010200c039001800000004001d000000000224004b000000850000c13d0000008402100370000000000202043b001700000002001d0000052f0220009c000000850000213d000000a402100370000000000202043b000005660420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001600000004001d000005660440009c000000850000213d001500240020003d000000160200002900000005022002100000001502200029000000000232004b000000850000213d000000c402100370000000000202043b000005660420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000441034f000000000404043b001400000004001d000005660440009c000000850000213d001300240020003d000000140200002900000005022002100000001302200029000000000232004b000000850000213d000000e402100370000000000202043b000005660420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000404200039000000000141034f000000000101043b001200000001001d000005660110009c000000850000213d001000240020003d000000120100002900000005011002100000001001100029000000000131004b000000850000213d000d00000008001d000000000100041a001100000001001d000eff000010019400000a760000c13d0000001101000029000000ff0110019000000000020000190000000102006039001c00000002001d00000000020004150000001c0220008a000f000500200218000000000101004b00000a7a0000c13d00000011010000290000059b0110019700000101011001bf000000000010041b000000400100043d0000059c0210009c0000077e0000213d0000012002100039000000400020043f000000ce02000039000a00000002001d000000000202041a0000052f022001970000000002210436000000cf03000039000b00000003001d000000000303041a0000000000320435000000d002000039000900000002001d000000000202041a0000004003100039000c00000003001d0000000000230435000000d102000039000800000002001d000000000202041a00000060031000390000000000230435000000d202000039000700000002001d000000000202041a00000080031000390000000000230435000000d302000039000600000002001d000000000202041a000000a003100039000f00000003001d0000000000230435000000d402000039000500000002001d000000000302041a000000c0021000390000000000320435000000e003100039000000d504000039000400000004001d000000000404041a0000000000430435000000d603000039001100000003001d000000000603041a000000010760019000000001036002700000007f0430018f000000000403c0190000001f0340008c00000000030000190000000103002039000000000337004b000003890000c13d000000400300043d0000000005430436000000000707004b00000b320000613d00000011060000290000000000600435000000000604004b000000000600001900000b380000613d0000058e0700004100000000060000190000000008560019000000000907041a000000000098043500000001077000390000002006600039000000000846004b000004590000413d00000b380000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b0000052f0210009c000000850000213d0000009702000039000000000202041a0000057603000041000000800030043f000000840010043f00000000010004140000052f02200197000000040320008c000006370000c13d0000000104000031000000200140008c0000002004008039000006620000013d0000000002000416000000840430008c000000850000413d000000000202004b000000850000c13d0000002402100370000000000402043b0000052f0240009c000000850000213d0000004402100370000000000602043b000005660260009c000000850000213d0000002302600039000000000232004b000000850000813d0000000405600039000000000251034f000000000202043b000005660720009c000000850000213d00000000062600190000002406600039000000000636004b000000850000213d0000006406100370000000000606043b000005660760009c000000850000213d0000002307600039000000000737004b000000850000813d0000000407600039000000000771034f000000000707043b001b00000007001d000005660770009c000000850000213d00000024066000390000001b070000290000000507700210001700000006001d001a00000007001d001800000067001d000000180330006b000000850000213d0000000403100370000000000303043b001600000003001d0000006003400210000000a00030043f0000002003500039000000000131034f0000001f0320018f0000000504200272000004b80000613d00000000050000190000000506500210000000000761034f000000000707043b000000b40660003900000000007604350000000105500039000000000645004b000004b00000413d000000000503004b000004c70000613d0000000504400210000000000141034f0000000303300210000000b404400039000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000b40120003900000000000104350000005301200039000000200300008a000000000331016f0000001401200039000000800010043f000005c60230009c0000077e0000813d0000008002300039000000400020043f0000052d0200004100000000030004140000052d0430009c00000000030280190000052d0410009c00000000010280190000006001100210000000c002300210000000000121019f000005c7011001c7000080100200003914ad14a80000040f0000000102200190000000850000613d000000000101043b0000001a020000290000003f02200039000005c802200197000000400300043d0000000002230019001a00000003001d000000000332004b00000000030000190000000103004039000005660420009c0000077e0000213d00000001033001900000077e0000c13d000000400020043f0000001b020000290000001a030000290000000002230436001900000002001d0000001803000029000000000230007c000000850000213d0000001b0200006b000005240000613d0000000202000367000000190300002900000017050000290000001806000029000000000452034f000000000404043b00000000034304360000002005500039000000000465004b000004fc0000413d0000001a020000290000000002020433000000000202004b000005240000613d001880100000003d0000000003000019001b00000003001d000000050230021000000019022000290000000002020433000000000321004b000005120000813d0000000000100435000000200020043f0000000001000414000005150000013d0000000000200435000000200010043f00000000010004140000052d0210009c0000052d01008041000000c0011002100000056d011001c7000000180200002914ad14a80000040f0000000102200190000000850000613d000000000101043b0000001b0300002900000001033000390000001a020000290000000002020433000000000223004b000005080000413d000000160110006c00000000010000190000000101006039000005d50000013d0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b0000052f0210009c000000850000213d000000c002000039001b00000002001d000000400020043f000000800000043f000000a00000043f0000000000100435000000cd01000039000000200010043f0000004002000039000000000100001914ad148d0000040f001a00000001001d0000001b0100002914ad0f900000040f0000001a01000029000000000101041a0000052f02100197000000c00020043f000000a001100270000000ff0110018f000000e00010043f000000400100043d0000000002210436000000e00300043d000000ff0330018f00000000003204350000052d020000410000052d0310009c000000000102801900000040011002100000058c011001c7000014ae0001042e0000000002000416000000240330008c000000850000413d000000000202004b000000850000c13d0000000401100370000000000101043b14ad108d0000040f000005d50000013d000000440230008c000000850000413d0000000402100370000000000202043b000005660420009c000000850000213d0000002304200039000000000434004b000000850000813d0000000406200039000000000461034f000000000404043b001b00000004001d000005660440009c000000850000213d0000002404200039001a00000004001d0000001b02400029000000000232004b000000850000213d0000002402100370000000000702043b000005660270009c000000850000213d0000002302700039000000000232004b000000850000813d0000000402700039000000000421034f000000000504043b000005660450009c000000850000213d000000050450021000000000074700190000002407700039000000000337004b000000850000213d000000cf03000039000000000303041a000000000703004b000007f50000c13d0000001b0100006b0000083f0000c13d000000d301000039000000000101041a001900000001001d0000056b0100004100000000001004390000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056c011001c70000800b0200003914ad14a80000040f000000010220019000000f840000613d000000000101043b000000190210006c000009490000a13d000000d402000039000000000202041a000000000221004b000009690000813d000000d002000039000000000202041a000000d903000039000000000303041a000000000223004b000009790000813d0000000002000411001800000002001d000000d502000039000000000302041a000000000203004b000000000200001900000a070000613d0000052f0230019800000a010000c13d0000057d0100004100000000001004350000001201000039000000040010043f0000057e01000041000014af000104300000053201000041000000800010043f0000002001000039000000840010043f000000a40010043f0000059201000041000000c40010043f000005bf01000041000014af00010430000000800010043f000000000505004b000005dd0000c13d000001000100008a000000000112016f000000a00010043f000000000104004b000000c001000039000000a001006039000007110000013d0000052d020000410000052d0310009c0000000001028019000000c001100210000000000209004b001b00000009001d0000069e0000c13d0000000002040019000006a20000013d000001000300008a000000000232016f000000a00020043f000000000101004b000000c001000039000000a001006039000006780000013d0000000101000039000000010110018f000000400200043d00000000001204350000052d010000410000052d0320009c0000000002018019000000400120021000000575011001c7000014ae0001042e0000000000300435000000020220008c000007060000813d000000a001000039000007110000013d0000052d040000410000052d0310009c0000000001048019000000c00110021000000577011001c714ad14a80000040f000000000301001900000060033002700000052d03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005fa0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000005f20000413d000000000705004b000006090000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000007260000613d0000001f01400039000000600110018f00000080021001bf000000400020043f000000200330008c000000850000413d000000ce03000039000000000303041a000000a004100039000000800600043d001a00000006001d000005c40500004100000000005404350000052f03300197000000a4041000390000000000340435000000c40310003900000000006304350000004403000039000000000032043500000100011001bf000000400010043f0000001b0100002914ad13490000040f000000400100043d0000001a0200002900000000002104350000052d0200004100000000030004140000052d0430009c00000000030280190000052d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000534011001c70000800d020000390000000203000039000005c5040000410000001b05000029000006fe0000013d0000052d030000410000052d0410009c0000000001038019000000c00110021000000577011001c714ad14a80000040f000000000301001900000060033002700000052d03300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000064f0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000006470000413d000000000705004b0000065e0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000007360000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200240008c000000850000413d000000800200043d0000000000210435000000400110021000000575011001c7000014ae0001042e0000058e0200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b0000066f0000413d000000c001300039000000800210008a0000008001000039001300000001001d14ad0f9b0000040f000000400300043d001200000003001d000001000130003900000120020000390000000000210435000000e00130003900000015020000290000000000210435000000c00130003900000016020000290000000000210435000000a0013000390000001702000029000000000021043500000080013000390000001802000029000000000021043500000060013000390000001902000029000000000021043500000040013000390000001a02000029000000000021043500000020013000390000001b02000029000000000021043500000014010000290000052f0110019700000000001304350000012002300039000000130100002914ad0fae0000040f00000012040000290000071c0000013d00000587011001c700008009020000390000000003090019000000000500001914ad14a30000040f0000001b09000029000300000001035500000060011002700001052d0010019d0000052d01100197000000000301004b000006bc0000c13d000000400100043d0000000102200190000006e90000613d00000000009104350000052d0200004100000000030004140000052d0430009c00000000030280190000052d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000534011001c70000800d0200003900000001030000390000058904000041000006fe0000013d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000005660630009c0000077e0000213d00000001055001900000077e0000c13d000000400030043f0000001f0310018f000000000414043600000003050003670000000501100272000006d90000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000006d10000413d000000000603004b000006aa0000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000006aa0000013d000000440210003900000588030000410000000000320435000000240210003900000010030000390000010e0000013d000000ca02000039000000000302041a0000059303300197000000000313019f000000000032041b000000800010043f0000052d0100004100000000020004140000052d0320009c0000000002018019000000c001200210000005c0011001c70000800d020000390000000103000039000005c10400004114ad14a30000040f0000000101200190000000850000613d0000000001000019000014ae0001042e14ad0fc10000040f0000000001000019000014ae0001042e0000058b0200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000514004b000007080000413d000000c001300039000000800210008a0000008001000039001b00000001001d14ad0f9b0000040f0000002001000039000000400200043d001a00000002001d00000000021204360000001b0100002914ad0fae0000040f0000001a0400002900000000014100490000052d020000410000052d0310009c00000000010280190000052d0340009c000000000402801900000040024002100000006001100210000000000121019f000014ae0001042e000000400200043d0000001f0430018f0000000505300272000007330000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000072b0000413d000000000604004b0000075c0000c13d000007690000013d000000400200043d0000001f0430018f0000000505300272000007430000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000073b0000413d000000000604004b000007690000613d0000075c0000013d000001000500008a000000000454016f000001c00040043f000000000303004b00000020040000390000000004006019000007790000013d000000400200043d0000001f0430018f00000005053002720000075a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007520000413d000000000604004b000007690000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000052d010000410000052d0420009c000000000201801900000040012002100000006002300210000000000121019f000014af000104300000058e050000410000000004000019000000000605041a000001c007400039000000000067043500000001055000390000002004400039000000000634004b000007720000413d0000003f03400039000000200400008a000000000343016f0000058f0430009c000007840000a13d0000057d0100004100000000001004350000004101000039000000040010043f0000057e01000041000014af00010430000001a003300039000000400030043f000001800020043f000000db05000039000000000205041a0000052f02200198000007980000c13d0000001b02000029000000a403200039000000000231034f000000000202043b000005900420009c000007d00000a13d000000400100043d0000004402100039000005bd03000041000000000032043500000024021000390000001f030000390000010e0000013d001000000005001d00120000000f001d00130000000e001d00140000000d001d00150000000c001d00160000000b001d00180000000a001d001700000009001d001100000008001d000001400100043d000f00000001001d0000056b0100004100000000001004390000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056c011001c70000800b0200003914ad14a80000040f000000010220019000000f840000613d000000000201043b0000000f0120006c00000c160000813d0000000201000367000001200300043d000000000232004b000008590000a13d0000001b020000290000004402200039000000000221034f000000000202043b000000c00300043d000000000223004b00000011080000290000001709000029000000180a000029000000160b000029000000150c000029000000140d000029000000130e000029000000120f00002900000010050000290000078b0000613d000000400100043d00000064021000390000059e03000041000000000032043500000044021000390000059f03000041000000000032043500000024021000390000002403000039000001b30000013d001000000005001d00120000000f001d00130000000e001d00140000000d001d00150000000c001d00160000000b001d00180000000a001d001700000009001d001100000008001d0000002004300039000000000341034f000000000303043b000005900530009c000007e50000a13d000000400100043d0000004402100039000005bc03000041000000000032043500000024021000390000001d030000390000010e0000013d0000002005400039000000000451034f000000000404043b000005910640009c0000084b0000a13d000000400100043d0000004402100039000005bb030000410000000000320435000005320200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000001130000013d0000056707000041000000800070043f000000840030043f00000000030004110000052f03300197000000a40030043f000000c40080043f0000002003600039000000000331034f0000001b070000290000001f0670018f000001040070043f00000005077002720000080c0000613d00000000080000190000000509800210000000000a93034f000000000a0a043b00000124099000390000000000a904350000000108800039000000000978004b000008040000413d000000000806004b0000081b0000613d0000000507700210000000000373034f00000003066002100000012407700039000000000807043300000000086801cf000000000868022f000000000303043b0000010006600089000000000363022f00000000036301cf000000000383019f00000000003704350000001b06000029000001240360003900000000000304350000001f03600039000000200600008a000000000363016f000000a006300039000000e40060043f000001240630003900000000005604350000001f0540018f0000000506400272000008340000613d0000002002200039000000000121034f0000014402300039000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000082c0000413d000000000105004b000008360000613d00000000010004140000000002000410000000040520008c000008ac0000c13d0000000103000031000000200130008c00000000040300190000002004008039000008dd0000013d0000053201000041000000800010043f0000002001000039000000840010043f0000002101000039000000a40010043f0000057801000041000000c40010043f0000057901000041000000e40010043f0000056501000041000014af00010430000000e00650008a000000000561034f000000000505043b0000052f0750009c000000850000213d000000000705004b000009500000c13d000000400100043d0000004402100039000005ba030000410000000000320435000000240210003900000017030000390000010e0000013d00000011080000290000001709000029000000180a000029000000160b000029000000150c000029000000140d000029000000130e000029000000120f00002900000010050000290000078b0000013d0000056707000041000000800070043f000000840030043f00000000030004110000052f03300197000000a40030043f000000c40080043f0000002003600039000000000331034f00000019070000290000001f0670018f000001040070043f00000005077002720000087a0000613d00000000080000190000000509800210000000000a93034f000000000a0a043b00000124099000390000000000a904350000000108800039000000000978004b000008720000413d000000000806004b000008890000613d0000000507700210000000000373034f00000003066002100000012407700039000000000807043300000000086801cf000000000868022f000000000303043b0000010006600089000000000363022f00000000036301cf000000000383019f00000000003704350000001906000029000001240360003900000000000304350000001f03600039000000200600008a000000000363016f000000a006300039000000e40060043f000001240630003900000000005604350000001f0540018f0000000506400272000008a10000613d000000000121034f0000014402300039000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000008990000413d000000000105004b000008a30000613d00000000010004140000000002000410000000040520008c000008ec0000c13d0000000103000031000000200130008c000000000403001900000020040080390000091d0000013d00000000033400190000056804000041000005680530009c00000000030480190000052d040000410000052d0510009c0000000001048019000000c0011002100000006003300210000000000113019f000005690110004114ad14a80000040f000000000301001900000060033002700000052d03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000008ca0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000008c20000413d000000000705004b000008d90000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000009390000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200330008c000000850000413d000000800300043d000000000403004b0000000004000019000000010400c039000000000443004b000000850000c13d000000000303004b000005850000c13d0000092b0000013d00000000033400190000056804000041000005680530009c00000000030480190000052d040000410000052d0510009c0000000001048019000000c0011002100000006003300210000000000113019f000005690110004114ad14a80000040f000000000301001900000060033002700000052d03300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000090a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000009020000413d000000000705004b000009190000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000009590000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200330008c000000850000413d000000800300043d000000000403004b0000000004000019000000010400c039000000000443004b000000850000c13d000000000303004b000001580000c13d0000053203000041000000000031043500000084032001bf00000020040000390000000000430435000000c4032000390000056a040000410000000000430435000000a40220003900000019030000390000000000320435000000400110021000000539011001c7000014af00010430000000400200043d0000001f0430018f0000000505300272000009460000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000093e0000413d000000000604004b000007690000613d0000075c0000013d000000400100043d00000044021000390000057a030000410000000000320435000000240210003900000018030000390000010e0000013d0000004007600039000000000671034f000000000606043b000000000806004b000009700000c13d000000400100043d0000004402100039000005b903000041000006eb0000013d000000400200043d0000001f0430018f0000000505300272000009660000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000095e0000413d000000000604004b000007690000613d0000075c0000013d000000400100043d00000044021000390000057b03000041000000000032043500000024021000390000000e030000390000010e0000013d0000002008700039000000000781034f000000000707043b000000000907004b000009800000c13d000000400100043d0000004402100039000005b803000041000006eb0000013d000000400100043d00000044021000390000057c030000410000000000320435000000240210003900000016030000390000010e0000013d000000000967004b000009890000a13d000000400100043d0000004402100039000005b7030000410000000000320435000000240210003900000019030000390000010e0000013d0000002008800039000000000981034f000000000909043b000000000a79004b000009920000a13d000000400100043d0000004402100039000005b603000041000007e10000013d000000000a240019000000000a3a004b00000a1e0000813d000000650a000039000000000a0a041a0000052f0aa00197000000000b000411000000000aba004b00000a720000c13d000000170b000029000000000a0b041a000005930aa0019700000000055a019f00000000005b041b000000600580008a000000000551034f000000000505043b000000180a00002900000000005a041b0000001605000029000000000065041b0000001505000029000000000075041b0000001405000029000000000095041b0000001305000029000000000025041b0000001202000029000000000032041b0000001902000029000000000042041b0000008002800039000000000221034f0000001a03000029000000230330008a000000000202043b0000058d043001970000058d05000041000000000332004b000000000300001900000000030540190000058d06200197000000000746004b000000000500a019000000000446013f0000058d0440009c000000000503c019000000000305004b000000850000613d0000001b032000290000000402300039000000000221034f000000000202043b000005660420009c000000850000213d000000000520007900000024043000390000058d06000041000000000754004b000000000700001900000000070620190000058d055001970000058d08400197000000000958004b0000000006008019000000000558013f0000058d0550009c000000000607c019000000000506004b000000850000c13d0000001105000029000000000605041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f0000000106600190000003890000c13d000000200650008c000009f70000413d0000001f0620003900000005066002700000058e076000410000058e06000041000000200820008c0000000006078019000000110700002900000000007004350000001f0550003900000005055002700000058e05500041000000000756004b000009f70000813d000000000006041b0000000106600039000000000756004b000009f30000413d0000001f0520008c00000b250000a13d00000011050000290000000000500435000000200500008a000000000652017000000b660000c13d00000024040000390000058e0500004100000b720000013d000000db03000039000000000303041a000000180330014f0000052f033001970000052f4220012900000000322300d9000000190110006a000000000121004b00000a120000a13d000000cc01000039000000000101041a000005800210019800000a160000c13d000000400100043d000000440210003900000583030000410000094c0000013d000000400100043d00000044021000390000057f030000410000010b0000013d0000000102000039000000000302041a000000020330008c00000a280000c13d000000400100043d00000044021000390000058203000041000007940000013d000000400100043d0000006402100039000005a20300004100000000003204350000004402100039000005a303000041000000000032043500000024021000390000002b03000039000001b30000013d0000000203000039000000000032041b0000052f0110019714ad0fd70000040f000000000400041600000000321400a9001900000004001d000000000304004b00000a340000613d00000019432000fa000000000113004b00000b940000c13d000005812120012a001700000001001d0000001a020000290000001b0300002914ad11b00000040f0000056f0100004100000000001004390000000001000412001b00000001001d000000040010044300000024000004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000570011001c7000080050200003914ad14a80000040f000000010220019000000f840000613d000000000101043b000000000201004b000000000200001900000af60000c13d000000ce01000039000000000101041a0000052f01100197001b00000002001d000000190220006914ad141f0000040f000000400100043d00000040021000390000001b030000290000000000320435000000200210003900000019030000290000000000320435000000170200002900000000002104350000052d0200004100000000030004140000052d0430009c00000000030280190000052d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000571011001c70000800d02000039000000030300003900000572040000410000001805000029000000000600001914ad14a30000040f0000000101200190000000850000613d0000000101000039000000000011041b0000000001000019000014ae0001042e000000400100043d00000044021000390000059203000041000007ed0000013d00000000010004150000001d0110008a000f000500100218001d00000000001d00000598010000410000000000100439000000000100041000000004001004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000586011001c7000080020200003914ad14a80000040f000000010220019000000f840000613d000000000101043b000000000101004b00000b180000c13d0000001101000029000000ff0110018f000000010110008c000000000100001900000001010060390000000f020000290000000502200270000000000201001f00000b1b0000c13d0000000e0100006b000004100000613d000001000100008a000000110110017f00000001011001bf000004130000013d0000000101000039000000000201041a000000020220008c00000a1a0000613d0000000202000039000000000021041b0000001b0100002900000000001004350000001701000029000000200010043f0000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056d011001c7000080100200003914ad14a80000040f0000000102200190000000850000613d000000400200043d0000056e0320009c0000077e0000213d000000000101043b0000004003200039000000400030043f000000000101041a0000052f031001970000000004320436000000a001100270000000ff0210018f00000000002404350000001a0100002914ad10cc0000040f001700000001001d0000001802000029000000190300002914ad11b00000040f0000056f0100004100000000001004390000000001000412001900000001001d000000040010044300000024000004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000570011001c7000080050200003914ad14a80000040f000000010220019000000f840000613d000000000101043b000000000201004b000000000200001900000c1d0000c13d001900000002001d0000001a0420006900000000030004100000001b01000029000000160200002914ad12600000040f000000400100043d00000040021000390000001903000029000000000032043500000020021000390000001a030000290000000000320435000000170200002900000000002104350000052d0200004100000000030004140000052d0430009c00000000030280190000052d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000571011001c70000800d020000390000000303000039000005720400004100000016050000290000001b0600002914ad14a30000040f0000000101200190000000850000613d00000a6e0000013d001a0019201000bd000000190200006b00000afd0000613d0000001a0300002900000019323000fa000000000112004b00000b940000c13d0000056f0100004100000000001004390000001b010000290000000400100443000000200100003900000024001004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000570011001c7000080050200003914ad14a80000040f000000010220019000000f840000613d000000000101043b0000001a02000029000027103220011a001b00000002001d0000052f0110019714ad141f0000040f0000001b030000290000000002030019000000190130006c00000a4d0000a13d00000b940000013d0000000f010000290000000501100270000000000100001f000000400100043d00000064021000390000059903000041000000000032043500000044021000390000059a03000041000000000032043500000024021000390000002e03000039000001b30000013d000000000302004b000000000300001900000b2a0000613d000000000141034f000000000301043b0000000301200210000000010400008a000000000114022f000000000141013f000000000113016f0000000102200210000000000121019f00000b800000013d000001000700008a000000000676016f0000000000650435000000000404004b000000200600003900000000060060190000003f046000390003002000000092000000030540017f0000000004350019000000000554004b00000000050000190000000105004039000005660640009c0000077e0000213d00000001055001900000077e0000c13d000000400040043f00000100011000390000000000310435000000db01000039000200000001001d000000000101041a0000052f0110019800000bf60000c13d00000002020003670000002401200370000000000101043b000000a401100039000000000312034f000000000303043b000005a00430009c000007910000813d0000002001100039000000000412034f000000000404043b000005a00540009c000007de0000813d0000002001100039000000000512034f000000000505043b000005a10650009c000007ea0000813d000000e00610008a000000000162034f000000000701043b0000052f0170009c000000850000213d000000400100043d000000000707004b00000c5b0000c13d000008530000013d0000058e05000041000000000800001900000000070800190000000008470019000000000881034f000000000808043b000000000085041b00000001055000390000002008700039000000000968004b00000b680000413d0000004404700039000000000626004b00000b7e0000813d0000000306200210000000f80660018f000000010700008a000000000667022f000000000676013f0000000003340019000000000131034f000000000101043b000000000161016f000000000015041b000000010120021000000001011001bf0000001102000029000000000012041b0000001801000029000000000101041a001b00000001001d000005940100004100000000001004390000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056c011001c70000800b0200003914ad14a80000040f000000010220019000000f840000613d000000000101043b000000000201004b00000b9a0000c13d0000057d0100004100000000001004350000001101000039000000040010043f0000057e01000041000014af0001043000000595020000410000000000200439000000010110008a00000004001004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000586011001c70000800b0200003914ad14a80000040f000000010220019000000f840000613d000000000101043b0000001b0110014f0000052f011001970000001003000029000000000203041a0000059302200197000000000121019f000000000013041b0000002002000039000000400100043d00000000022104360000001703000029000000000303041a0000052f0330019700000000003204350000001802000029000000000202041a000000400310003900000000002304350000001602000029000000000202041a000000600310003900000000002304350000001502000029000000000202041a000000800310003900000000002304350000001402000029000000000202041a000000a00310003900000000002304350000001302000029000000000202041a000000c00310003900000000002304350000001202000029000000000202041a000000e00310003900000000002304350000001902000029000000000202041a000001200300003900000120041000390000000000340435000001000310003900000000002304350000001102000029000000000402041a000000010540019000000001034002700000007f0230018f000000000203c0190000001f0320008c00000000030000190000000103002039000000000334013f0000000103300190000003890000c13d000001400310003900000000002304350000016003100039000000000505004b00000c410000613d00000011040000290000000000400435000000000402004b000000000400001900000c470000613d0000058e0500004100000000040000190000000006340019000000000705041a000000000076043500000001055000390000002004400039000000000624004b00000bee0000413d00000c470000013d0000000001020433000100000001001d0000056b0100004100000000001004390000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056c011001c70000800b0200003914ad14a80000040f000000010220019000000f840000613d000000000101043b000000010210006c00000c160000813d00000002020003670000000f030000290000000003030433000000000131004b00000c5a0000a13d0000002401200370000000000101043b0000004401100039000000000112034f000000000101043b0000000c030000290000000003030433000000000113004b000007c60000c13d00000b4c0000013d000000400100043d00000044021000390000059d03000041000000000032043500000024021000390000001a030000390000010e0000013d0018001a201000bd0000001a0200006b00000c240000613d00000018030000290000001a323000fa000000000112004b00000b940000c13d0000056f01000041000000000010043900000019010000290000000400100443000000200100003900000024001004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000570011001c7000080050200003914ad14a80000040f000000010220019000000f840000613d000000000101043b0000001802000029000027102420011a001900000004001d0000052f031001970000001b01000029000000160200002914ad12600000040f000000190300002900000000020300190000001a0130006c00000ad40000a13d00000b940000013d000001000500008a000000000454016f0000000000430435000000000202004b000000200400003900000000040060190000052d020000410000052d0310009c0000000001028019000000400110021000000160034000390000052d0430009c00000000030280190000006003300210000000000113019f00000000030004140000052d0430009c0000000003028019000000c002300210000000000121019f00000587011001c70000800d0200003900000001030000390000059604000041000006fe0000013d00000b4c0000013d0000004007600039000000000672034f000000000606043b000000000806004b00000c610000c13d000009560000013d0000002008700039000000000782034f000000000707043b000000000907004b00000c670000c13d000009760000013d000000000667004b00000c6a0000a13d000009830000013d0000002006800039000000000262034f000000000202043b000000000272004b00000c700000a13d0000098f0000013d0000000002350019000000000242004b00000a1f0000813d000000000200041a0000ff000220019000000c7c0000c13d0000006402100039000005b40300004100000000003204350000004402100039000005b50300004100000a240000013d000005a40210009c0000077e0000213d0000002402100039000005a50300004100000000003204350000004402100039000000000300041400000060040000390000000000420435000005a602000041000000000021043500000064021000390000000000020435000000040210003900000000000204350000052d020000410000052d0430009c00000000030280190000052d0410009c00000000010280190000004001100210000000c002300210000000000112019f000005a7011001c7000080060200003914ad14a30000040f000000010220019000000c9e0000613d000000000101043b000000000201004b00000cc80000c13d0000000301000367000000010200003100000ca30000013d0003000000010355000000000201001900000060022002700001052d0020019d0000052d02200197000000400300043d0000001f0420018f000000050520027200000cb00000613d000000000600001900000005076002100000000008730019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000ca80000413d000000000604004b00000cbf0000613d0000000505500210000000000151034f00000000055300190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000052d010000410000052d0430009c00000000030180190000052d0420009c000000000201801900000060012002100000004002300210000000000112019f000014af000104300000052f031001970000009701000039000000000201041a0000059302200197000000000232019f000000000021041b00000598010000410000000000100439000f00000003001d00000004003004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000586011001c7000080020200003914ad14a80000040f000000010220019000000f840000613d000000000101043b000000000101004b000000850000613d000000400200043d000005a801000041000c00000002001d0000000001120436000100000001001d00000000010004140000000f02000029000000040220008c00000cfb0000613d0000052d020000410000052d0310009c00000000010280190000000c040000290000052d0340009c00000000020440190000004002200210000000c001100210000000000121019f000005a9011001c70000000f0200002914ad14a30000040f000000000301001900000060033002700001052d0030019d0000052d033001970003000000010355000000010220019000000d100000613d0000000c01000029000005660110009c0000077e0000213d0000000c01000029000000400010043f0000001402000029000000160120006b00000d200000c13d0000001202000029000000160120006b00000d270000c13d00000017010000290000052f0110019800000d390000c13d0000000c030000290000004401300039000005b30200004100000000002104350000002401300039000000120200003900000d2d0000013d000000400200043d0000001f0430018f000000050530027200000d1d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d150000413d000000000604004b000007690000613d0000075c0000013d0000000c030000290000004401300039000005aa02000041000000000021043500000024013000390000001b0200003900000d2d0000013d0000000c030000290000004401300039000005ab02000041000000000021043500000024013000390000001d020000390000000000210435000005320100004100000000001304350000000401300039000000200200003900000000002104350000052d010000410000052d0230009c0000000003018019000000400130021000000539011001c7000014af0001043000000002020003670000002403200370000000000303043b0000000404300039000000000542034f000000000505043b0000052f0650009c000000850000213d0000000a07000029000000000607041a0000059306600197000000000556019f000000000057041b0000002005400039000000000552034f000000000505043b0000000b06000029000000000056041b0000004005400039000000000552034f000000000505043b0000000906000029000000000056041b0000006005400039000000000552034f000000000505043b0000000806000029000000000056041b0000008005400039000000000552034f000000000505043b0000000706000029000000000056041b000000a005400039000000000552034f000000000505043b0000000606000029000000000056041b000000c005400039000000000552034f000000000505043b0000000506000029000000000056041b000000e005400039000000000552034f000000000505043b0000000406000029000000000056041b0000010004400039000000000442034f000000000404043b00000000050000310000000006350049000000230660008a0000058d07000041000000000864004b000000000800001900000000080780190000058d066001970000058d09400197000000000a69004b0000000007008019000000000669013f0000058d0660009c000000000708c019000000000607004b000000850000c13d00000000033400190000000404300039000000000442034f000000000404043b000005660640009c000000850000213d000000000545004900000024033000390000058d06000041000000000753004b000000000700001900000000070620190000058d055001970000058d08300197000000000958004b0000000006008019000000000558013f0000058d0550009c000000000607c019000000000506004b000000850000c13d0000001105000029000000000605041a000000010560019000000001076002700000007f0570018f000000000507c0190000001f0750008c00000000070000190000000107002039000000000676013f0000000106600190000003890000c13d000000200650008c00000db00000413d0000001f0640003900000005066002700000058e076000410000058e06000041000000200840008c0000000006078019000000110700002900000000007004350000001f0550003900000005055002700000058e05500041000000000756004b00000db00000813d000000000006041b0000000106600039000000000756004b00000dac0000413d0000001f0540008c0000000105400210000000030640021000000dbb0000a13d00000011070000290000000000700435000000030840018000000dc60000c13d0000058e07000041000000000900001900000dd00000013d000000000404004b000000000400001900000dc00000613d000000000332034f000000000403043b000000010300008a000000000663022f000000000336013f000000000334016f000000000353019f00000ddc0000013d0000058e070000410000000009000019000000000a390019000000000aa2034f000000000a0a043b0000000000a7041b00000001077000390000002009900039000000000a89004b00000dc80000413d000000000448004b00000ddb0000813d000000f80460018f000000010600008a000000000446022f000000000464013f0000000003390019000000000332034f000000000303043b000000000343016f000000000037041b00000001035001bf0000001104000029000000000034041b000000cb03000039000000000503041a000000010450019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000565013f0000000105500190000003890000c13d000000200540008c00000dfd0000413d0000001a070000290000001f0570003900000005055002700000058b065000410000058b05000041000000200770008c000000000506801900000000003004350000001f0440003900000005044002700000058b04400041000000000645004b00000dfd0000813d000000000005041b0000000105500039000000000645004b00000df90000413d0000001a050000290000001f0450008c0000000104500210000000030550021000000e090000a13d000000000030043500000003070000290000001a0770018000000e140000c13d0000058b06000041000000000800001900000e1e0000013d0000001a0600006b000000000600001900000e0e0000613d0000001902200360000000000602043b000000010200008a000000000552022f000000000225013f000000000226016f000000000242019f00000e2a0000013d0000058b0600004100000000080000190000001909800029000000000992034f000000000909043b000000000096041b00000001066000390000002008800039000000000978004b00000e160000413d0000001a0770006c00000e290000813d000000f80550018f000000010700008a000000000557022f000000000575013f0000001907800029000000000272034f000000000202043b000000000252016f000000000026041b00000001024001bf000000000023041b000005ac04000041000000180500006b0000000004006019000000cc05000039000000000605041a000005ad06600197000000000464019f000000000414019f000000000045041b0000000d040000290000000c0700002900000000004704350000000a04000029000000000404041a0000052f04400197000000800570003900000000004504350000000b04000029000000000404041a000000a00570003900000000004504350000000904000029000000000404041a000000c00570003900000000004504350000000804000029000000000404041a000000e00570003900000000004504350000000704000029000000000404041a000001000570003900000000004504350000000604000029000000000404041a000001200570003900000000004504350000000504000029000000000404041a000001400570003900000000004504350000000404000029000000000404041a000001800570003900000120060000390000000000650435000001600570003900000000004504350000001104000029000000000504041a000000010750019000000001065002700000007f0460018f000000000406c0190000001f0640008c00000000060000190000000106002039000000000665013f0000000106600190000003890000c13d0000000c08000029000001a0068000390000000000460435000001c006800039000000000707004b00000e7c0000613d00000011050000290000000000500435000000000504004b000000000700001900000e820000613d0000058e0500004100000000070000190000000008670019000000000905041a000000000098043500000001055000390000002007700039000000000847004b00000e740000413d00000e820000013d000001000700008a000000000575016f0000000000560435000000000404004b00000020070000390000000007006019000000010820019000000001042002700000007f0540018f000000000504c01900000000066700190000000c0460006a000000010700002900000000004704350000001f0750008c00000000070000190000000107002039000000000772013f0000000107700190000003890000c13d0000000006560436000000000708004b00000ea10000613d0000000000300435000000000205004b000000000200001900000ea70000613d0000058b0300004100000000020000190000000007260019000000000803041a000000000087043500000001033000390000002002200039000000000752004b00000e990000413d00000ea70000013d000001000300008a000000000232016f0000000000260435000000000205004b000000200200003900000000020060190000000c060000290000006003600039000000180500002900000000005304350000004003600039000000000013043500000000012400190000052d020000410000052d0360009c0000000006028019000000400360021000000020011000390000052d0410009c00000000010280190000006001100210000000000131019f00000000030004140000052d0430009c0000000003028019000000c002300210000000000112019f00000587011001c70000800d020000390000000103000039001200000003001d000005ae0400004114ad14a30000040f0000000101200190000000850000613d000000160100006b00000f340000613d001a00000000001d0000001a010000290000000502100210001800150020002d00000002030003670000001801300360000000000101043b0000052f0410009c000000850000213d000000000401004b00000f850000613d0000001304200029000000000443034f000000000404043b0000052f0540009c000000850000213d000000000504004b00000f8c0000613d0000001002200029000000000223034f000000000202043b000000ff0320008c000000850000213d000000400300043d001900000003001d0000056e0330009c0000077e0000213d00000019050000290000004003500039000000400030043f0000000003450436001400000003001d00000000002304350000000000100435000000cd01000039001700000001001d000000200010043f00000000010004140000052d0210009c0000052d01008041000000c0011002100000056d011001c7000080100200003914ad14a80000040f0000000102200190000000850000613d000000190200002900000000020204330000052f02200197000000000101043b000000000301041a000005ad03300197000000000223019f00000014030000290000000003030433000000a0033002100000058003300197000000000232019f000000000021041b00000018010000290000000201100367000000000101043b001900000001001d0000052f0110009c000000850000213d000000190100002900000000001004350000001701000029000000200010043f00000000010004140000052d0210009c0000052d01008041000000c0011002100000056d011001c7000080100200003914ad14a80000040f0000000102200190000000850000613d000000000101043b000000400200043d00000019030000290000000003320436000000000101041a0000052f041001970000000000430435000000a001100270000000ff0110018f000000400320003900000000001304350000052d0120009c0000052d04000041000000000204801900000000010004140000052d0310009c00000000010480190000004002200210000000c001100210000000000121019f00000571011001c70000800d020000390000000103000039000005af0400004114ad14a30000040f0000000101200190000000850000613d0000001a020000290000000102200039001a00000002001d000000160120006c00000ec70000413d0000000b01000029000000000101041a001a00000001001d000005940100004100000000001004390000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056c011001c70000800b0200003914ad14a80000040f000000010220019000000f840000613d000000000101043b000000000201004b00000b940000613d00000595020000410000000000200439000000010110008a00000004001004430000052d0300004100000000010004140000052d0210009c0000000001038019000000c00110021000000586011001c70000800b0200003914ad14a80000040f000000010220019000000f840000613d000000000101043b0000001a0110014f0000052f011001970000000203000029000000000203041a0000059302200197000000000112019f000000000013041b0000001b010000290000052f061001970000006501000039000000000201041a0000059303200197000000000363019f000000000031041b00000000010004140000052d0310009c0000052d01008041000000c00110021000000587011001c70000052f052001970000800d020000390000000303000039000005970400004114ad14a30000040f0000000101200190000000850000613d0000000e0100006b000007010000c13d000000000200041a000005b201200197000000000010041b000000400100043d000000120300002900000000003104350000052d0200004100000000050004140000052d0450009c00000000050280190000052d0410009c00000000010280190000004001100210000000c002500210000000000112019f00000534011001c70000800d020000390000053504000041000006fe0000013d000000000001042f000000400100043d0000004402100039000005b1030000410000000000320435000000240210003900000012030000390000010e0000013d000000400100043d0000004402100039000005b0030000410000010b0000013d000005c90210009c00000f950000813d0000004001100039000000400010043f000000000001042d0000057d0100004100000000001004350000004101000039000000040010043f0000057e01000041000014af000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000005660310009c00000fa80000213d000000010220019000000fa80000c13d000000400010043f000000000001042d0000057d0100004100000000001004350000004101000039000000040010043f0000057e01000041000014af0001043000000000430104340000000001320436000000000203004b00000fba0000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000532004b00000fb30000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d0000052f061001970000006501000039000000000201041a0000059303200197000000000363019f000000000031041b0000052d0100004100000000030004140000052d0430009c0000000003018019000000c00130021000000587011001c70000052f052001970000800d020000390000000303000039000005970400004114ad14a30000040f000000010120019000000fd50000613d000000000001042d0000000001000019000014af000104300002000000000002000000400a00043d000005ca0200004100000000062a043600000000030004140000052f02100197000000040120008c00000fe40000c13d0000000103000031000000a00130008c0000000004030019000000a004008039000010170000013d000100000006001d0000052d010000410000052d0430009c00000000030180190000052d04a0009c00000000010a40190000004001100210000000c003300210000000000113019f000005a9011001c700020000000a001d14ad14a80000040f000000020a000029000000000301001900000060033002700000052d03300197000000a00430008c0000000004030019000000a0040080390000001f0540018f0000000506400272000010030000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000ffb0000413d000000000705004b000010120000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000106a0000613d00000001060000290000001f01400039000001e00110018f0000000002a10019000000000112004b00000000010000190000000101004039000005660420009c000010440000213d0000000101100190000010440000c13d000000400020043f0000009f0130008c000010420000a13d00000000030a0433000005cb0130009c000010420000213d0000006001a00039000000000501043300000000010604330000008004a000390000000004040433000005cb0640009c000010420000213d0000058d06000041000000000701004b000000000700001900000000070640190000058d08100197000000000908004b000000000600a0190000058d0880009c000000000607c019000000000606004b0000104a0000c13d000000000601004b0000104a0000613d000000000604004b000010500000613d000000000505004b000010530000613d000000000334004b000010590000413d000000000001042d0000000001000019000014af000104300000057d0100004100000000001004350000004101000039000000040010043f0000057e01000041000014af000104300000004401200039000005cf03000041000000000031043500000024012000390000000e030000390000105e0000013d0000004401200039000005ce030000410000105b0000013d0000004401200039000005cd030000410000000000310435000000240120003900000012030000390000105e0000013d0000004401200039000005cc03000041000000000031043500000024012000390000000b030000390000000000310435000005320100004100000000001204350000000401200039000000200300003900000000003104350000052d010000410000052d0320009c0000000002018019000000400120021000000539011001c7000014af00010430000000400200043d0000001f0430018f0000000505300272000010770000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000106f0000413d000000000604004b000010860000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000052d010000410000052d0420009c000000000201801900000040012002100000006002300210000000000121019f000014af000104300001000000000002000100000001001d000005940100004100000000001004390000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056c011001c70000800b0200003914ad14a80000040f0000000102200190000010b00000613d000000000101043b000000000201004b000010b10000613d00000595020000410000000000200439000000010110008a00000004001004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000586011001c70000800b0200003914ad14a80000040f0000000102200190000010b00000613d000000000101043b000000010110014f0000052f01100197000000000001042d000000000001042f0000057d0100004100000000001004350000001101000039000000040010043f0000057e01000041000014af00010430000000d502000039000000000202041a000000000302004b000010c40000613d0000052f02200198000010c60000613d000000db03000039000000000303041a000000000113013f0000052f011001970000052f3220012900000000212100d9000000000001042d0000000001000019000000000001042d0000057d0100004100000000001004350000001201000039000000040010043f0000057e01000041000014af000104300004000000000002000000000a020019000000000b010019000000400c00043d000005ca0100004100000000061c043600000000010004140000052f02300197000000040320008c000010db0000c13d0000000103000031000000a00130008c0000000004030019000000a004008039000011120000013d000100000006001d00030000000b001d00040000000a001d0000052d030000410000052d0410009c00000000010380190000052d04c0009c00000000030c40190000004003300210000000c001100210000000000131019f000005a9011001c700020000000c001d14ad14a80000040f000000020c000029000000000301001900000060033002700000052d03300197000000a00430008c0000000004030019000000a0040080390000001f0540018f0000000506400272000010fc0000613d0000000007000019000000050870021000000000098c0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000010f40000413d000000000705004b0000110b0000613d0000000506600210000000000761034f00000000066c00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000000040a000029000000030b0000290000118d0000613d00000001060000290000001f01400039000001e00210018f0000000001c20019000000000221004b00000000020000190000000102004039000005660410009c000011610000213d0000000102200190000011610000c13d000000400010043f0000009f0230008c0000115f0000a13d00000000030c0433000005cb0230009c0000115f0000213d0000006002c00039000000000502043300000000020604330000008004c000390000000004040433000005cb0640009c0000115f0000213d0000058d06000041000000000702004b000000000700001900000000070640190000058d08200197000000000908004b000000000600a0190000058d0880009c000000000607c019000000000606004b000011670000c13d000000000602004b000011670000613d000000000604004b0000116d0000613d000000000505004b000011700000613d000000000334004b000011760000413d0000000031b200a900000000030b004b000011540000613d0000000043b100d9000000000223004b000011560000c13d0000004e02a0008c000011560000813d00000000020a004b0000115c0000613d0000000a0300003900000001020000390000000104a001900000000004030019000000010400603900000000422400a90000000104a0008c000000010aa0027000000000433300a9000011480000213d000000000302004b000011870000613d00000000212100d9000000000001042d0000004d02a0008c000011440000a13d0000057d0100004100000000001004350000001101000039000000040010043f0000057e01000041000014af00010430000000010200003900000000212100d9000000000001042d0000000001000019000014af000104300000057d0100004100000000001004350000004101000039000000040010043f0000057e01000041000014af000104300000004402100039000005cf03000041000000000032043500000024021000390000000e030000390000117b0000013d0000004402100039000005ce03000041000011780000013d0000004402100039000005cd030000410000000000320435000000240210003900000012030000390000117b0000013d0000004402100039000005cc03000041000000000032043500000024021000390000000b030000390000000000320435000005320200004100000000002104350000000402100039000000200300003900000000003204350000052d020000410000052d0310009c0000000001028019000000400110021000000539011001c7000014af000104300000057d0100004100000000001004350000001201000039000000040010043f0000057e01000041000014af00010430000000400200043d0000001f0430018f00000005053002720000119a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000011920000413d000000000604004b000011a90000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000052d010000410000052d0420009c000000000201801900000040012002100000006002300210000000000121019f000014af000104300007000000000002000700000001001d000000000103004b000011c00000613d0000000201000367000000000421034f000000000404043b000005d004400197000005d10440009c000012470000c13d000000210330008c0000124e0000c13d0000000102200039000000000121034f000000000101043b000011c20000013d000000d101000039000000000101041a000400000001001d0000000001000411000600000001001d0000000000100435000000da01000039000500000001001d000000200010043f0000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056d011001c7000080100200003914ad14a80000040f0000000102200190000012330000613d000000000101043b000000000201041a0000000701200029000000000221004b00000000020000190000000102004039000000010220008c0000122d0000613d000000040110006c000012350000213d000000d904000039000000000604041a0000000705600029000000000165004b0000000001000019000000010100403900000001011001900000122d0000c13d000000d001000039000000000101041a000000000115004b000012390000213d000000d201000039000000000101041a000000070110006c000012400000213d000000d701000039000000000201041a0001000100000092000000010320006c0000122d0000613d000200000006001d000300000005001d000400000004001d0000000102200039000000000021041b000000060100002900000000001004350000000501000029000000200010043f0000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056d011001c7000080100200003914ad14a80000040f0000000102200190000012330000613d000000000101043b000000000101041a000000000101004b000000040400002900000003050000290000000206000029000012120000c13d000000d801000039000000000201041a000000010320006c0000122d0000613d0000000102200039000000000021041b000000000165004b0000122d0000413d000000000054041b000000060100002900000000001004350000000501000029000000200010043f0000052d0100004100000000020004140000052d0320009c0000000002018019000000c0012002100000056d011001c7000080100200003914ad14a80000040f0000000102200190000012330000613d000000000101043b000000000301041a0000000702300029000000000332004b0000000003000019000000010300403900000001033001900000122d0000c13d000000000021041b000000000001042d0000057d0100004100000000001004350000001101000039000000040010043f0000057e01000041000014af000104300000000001000019000014af00010430000000400100043d0000004402100039000005d6030000410000123c0000013d000000400100043d0000004402100039000005d503000041000000000032043500000024021000390000001b03000039000012540000013d000000400100043d0000004402100039000005d403000041000000000032043500000024021000390000001603000039000012540000013d000000400100043d0000004402100039000005d203000041000000000032043500000024021000390000000c03000039000012540000013d000000400100043d0000004402100039000005d3030000410000000000320435000000240210003900000017030000390000000000320435000005320200004100000000002104350000000402100039000000200300003900000000003204350000052d020000410000052d0310009c0000000001028019000000400110021000000539011001c7000014af000104300005000000000002000000400600043d000000640560003900000000004504350000052f03300197000000440460003900000000003404350000002004600039000005d703000041000300000004001d00000000003404350000052f022001970000002403600039000000000023043500000064020000390000000000260435000005d80260009c000012f90000813d0000052f03100197000000a002600039000000400020043f000005d90160009c000012f90000213d000000e001600039000000400010043f0000002001000039000200000001001d000100000002001d0000000000120435000400000006001d000000c001600039000005da02000041000000000021043500000598010000410000000000100439000500000003001d00000004003004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000586011001c7000080020200003914ad14a80000040f0000000102200190000013010000613d000000000101043b000000000101004b000013020000613d0000000401000029000000000601043300000000010004140000000502000029000000040320008c000012c90000c13d00000001020000390000000104000031000000000104004b000012de0000613d0000001f01400039000000200300008a000000000131016f0000003f01100039000000000131016f000000400300043d0000000001130019000000000531004b00000000050000190000000105004039000005660610009c000012f90000213d0000000105500190000012f90000c13d000000400010043f0000001f0540018f000000000143043600000003060003670000000504400272000012b90000613d000000000700001900000005087002100000000009810019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000012b10000413d000000000705004b000012e00000613d0000000504400210000000000646034f00000000044100190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000012e00000013d0000052d0300004100000003050000290000052d0450009c000000000503801900000040045002100000052d0560009c00000000060380190000006005600210000000000545019f0000052d0410009c0000000001038019000000c001100210000000000115019f14ad14a30000040f000000010220018f000300000001035500000060011002700001052d0010019d0000052d04100197000000000104004b0000129c0000c13d000000600300003900000080010000390000000003030433000000000202004b000013140000613d000000000203004b000012f80000613d0000058d020000410000001f0430008c000000000400001900000000040220190000058d03300197000000000503004b00000000020080190000058d0330009c000000000204c019000000000202004b000012ff0000613d0000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000012ff0000c13d000000000101004b0000132b0000613d000000000001042d0000057d0100004100000000001004350000004101000039000000040010043f0000057e01000041000014af000104300000000001000019000014af00010430000000000001042f000000400100043d0000004402100039000005dd03000041000000000032043500000024021000390000001d030000390000000000320435000005320200004100000000002104350000000402100039000000020300002900000000003204350000052d020000410000052d0310009c0000000001028019000000400110021000000539011001c7000014af00010430000000000203004b000013400000c13d000000400300043d000500000003001d000005320100004100000000001304350000000401300039000000020200002900000000002104350000002402300039000000010100002914ad0fae0000040f000000050400002900000000014100490000052d020000410000052d0310009c00000000010280190000052d0340009c000000000402801900000040024002100000006001100210000000000121019f000014af00010430000000400100043d0000006402100039000005db0300004100000000003204350000004402100039000005dc03000041000000000032043500000024021000390000002a030000390000000000320435000005320200004100000000002104350000000402100039000000020300002900000000003204350000052d020000410000052d0310009c0000000001028019000000400110021000000533011001c7000014af000104300000052d020000410000052d0430009c00000000030280190000052d0410009c000000000102801900000040011002100000006002300210000000000112019f000014af000104300004000000000002000400000002001d0000052f04100197000000400300043d000005c90130009c000013cf0000813d0000004001300039000000400010043f0000002001300039000005da0200004100000000002104350000002001000039000200000001001d000100000003001d000000000013043500000598010000410000000000100439000300000004001d00000004004004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000586011001c7000080020200003914ad14a80000040f0000000102200190000013d70000613d000000000101043b000000000101004b000013d80000613d0000000401000029000000006301043400000000010004140000000302000029000000040420008c000013a00000c13d00000001020000390000000104000031000000000104004b000013b40000613d0000001f01400039000000200300008a000000000131016f0000003f01100039000000000131016f000000400300043d0000000001130019000000000531004b00000000050000190000000105004039000005660610009c000013cf0000213d0000000105500190000013cf0000c13d000000400010043f0000001f0540018f000000000143043600000003060003670000000504400272000013900000613d000000000700001900000005087002100000000009810019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000013880000413d000000000705004b000013b60000613d0000000504400210000000000646034f00000000044100190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000013b60000013d0000052d040000410000052d0530009c000000000304801900000060033002100000052d0560009c00000000060480190000004005600210000000000553019f0000052d0310009c0000000001048019000000c001100210000000000115019f14ad14a30000040f000000010220018f000300000001035500000060011002700001052d0010019d0000052d04100197000000000104004b000013730000c13d000000600300003900000080010000390000000003030433000000000202004b000013ea0000613d000000000203004b000013ce0000613d0000058d020000410000001f0430008c000000000400001900000000040220190000058d03300197000000000503004b00000000020080190000058d0330009c000000000204c019000000000202004b000013d50000613d0000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000013d50000c13d000000000101004b000014010000613d000000000001042d0000057d0100004100000000001004350000004101000039000000040010043f0000057e01000041000014af000104300000000001000019000014af00010430000000000001042f000000400100043d0000004402100039000005dd03000041000000000032043500000024021000390000001d030000390000000000320435000005320200004100000000002104350000000402100039000000020300002900000000003204350000052d020000410000052d0310009c0000000001028019000000400110021000000539011001c7000014af00010430000000000203004b000014160000c13d000000400300043d000400000003001d000005320100004100000000001304350000000401300039000000020200002900000000002104350000002402300039000000010100002914ad0fae0000040f000000040400002900000000014100490000052d020000410000052d0310009c00000000010280190000052d0340009c000000000402801900000040024002100000006001100210000000000121019f000014af00010430000000400100043d0000006402100039000005db0300004100000000003204350000004402100039000005dc03000041000000000032043500000024021000390000002a030000390000000000320435000005320200004100000000002104350000000402100039000000020300002900000000003204350000052d020000410000052d0310009c0000000001028019000000400110021000000533011001c7000014af000104300000052d020000410000052d0430009c00000000030280190000052d0410009c000000000102801900000040011002100000006002300210000000000112019f000014af000104300003000000000002000100000002001d000200000001001d0000009701000039000000000101041a000005980200004100000000002004390000052f01100197000300000001001d00000004001004430000052d0100004100000000020004140000052d0320009c0000000002018019000000c00120021000000586011001c7000080020200003914ad14a80000040f0000000102200190000014600000613d000000000101043b000000000101004b000014610000613d000000400500043d000005de01000041000000000015043500000002010000290000052f011001970000000402500039000000000012043500000000010004140000000304000029000000040240008c0000145c0000613d0000052d020000410000052d0310009c00000000010280190000052d0350009c000200000005001d00000000020540190000004002200210000000c001100210000000000121019f0000000103000029000000000203004b000014510000613d000005df011001c700008009020000390000000005000019000014530000013d0000057e011001c7000000000204001914ad14a30000040f0003000000010355000000000301001900000060033002700001052d0030019d0000052d0330019700000001022001900000000205000029000014690000613d000005e00150009c000014630000813d000000400050043f000000000001042d000000000001042f0000000001000019000014af000104300000057d0100004100000000001004350000004101000039000000040010043f0000057e01000041000014af00010430000000400200043d0000001f0430018f0000000505300272000014760000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000146e0000413d000000000604004b000014850000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000052d010000410000052d0420009c000000000201801900000040012002100000006002300210000000000112019f000014af00010430000000000001042f0000052d030000410000052d0410009c000000000103801900000040011002100000052d0420009c00000000020380190000006002200210000000000112019f00000000020004140000052d0420009c0000000002038019000000c002200210000000000112019f00000587011001c7000080100200003914ad14a80000040f0000000102200190000014a10000613d000000000101043b000000000001042d0000000001000019000014af00010430000014a6002104210000000102000039000000000001042d0000000002000019000000000001042d000014ab002104230000000102000039000000000001042d0000000002000019000000000001042d000014ad00000432000014ae0001042e000014af00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff616c697a696e6700000000000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320696e69746908c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000200000000000000000000000007f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498dac4fd790edde0c2ab54e0618fa7d2d818b20fe5504b25328f64c7246121e0eb00000002000000000000000000000000000000c0000001000000000000000000666565526563697069656e74203d3d20300000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000008dbc834200000000000000000000000000000000000000000000000000000000cc8f918100000000000000000000000000000000000000000000000000000000e6064de200000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000ffa1ad7400000000000000000000000000000000000000000000000000000000e6064de300000000000000000000000000000000000000000000000000000000ea51764500000000000000000000000000000000000000000000000000000000cc8f918200000000000000000000000000000000000000000000000000000000e2982c2100000000000000000000000000000000000000000000000000000000e49248d500000000000000000000000000000000000000000000000000000000a9e0c9c200000000000000000000000000000000000000000000000000000000b4bd9e2600000000000000000000000000000000000000000000000000000000b4bd9e2700000000000000000000000000000000000000000000000000000000c3b88b4200000000000000000000000000000000000000000000000000000000a9e0c9c300000000000000000000000000000000000000000000000000000000ab803a76000000000000000000000000000000000000000000000000000000008dbc83430000000000000000000000000000000000000000000000000000000092a85fde00000000000000000000000000000000000000000000000000000000a04748f600000000000000000000000000000000000000000000000000000000621aa9240000000000000000000000000000000000000000000000000000000075f620ab00000000000000000000000000000000000000000000000000000000826b90f100000000000000000000000000000000000000000000000000000000826b90f2000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000075f620ac0000000000000000000000000000000000000000000000000000000079502c5500000000000000000000000000000000000000000000000000000000621aa92500000000000000000000000000000000000000000000000000000000669ad09200000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000031ab05170000000000000000000000000000000000000000000000000000000047535d7a0000000000000000000000000000000000000000000000000000000047535d7b000000000000000000000000000000000000000000000000000000004cc233a80000000000000000000000000000000000000000000000000000000031ab05180000000000000000000000000000000000000000000000000000000031b3eb940000000000000000000000000000000000000000000000000000000001c3753f000000000000000000000000000000000000000000000000000000001be19560000000000000000000000000000000000000000000000000000000002ddbd13a322e3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff01c3753f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff3b00000000000000000000000000000000000000c4000000800000000000000000626164206d65726b6c652070726f6f6620666f722073616c6500000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000000200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000020000000000000000000000000000000000006000000000000000000000000000f93dbdb72854b6b6fb35433086556f2635fc83c37080c667496fecfa650fb4696e76616c6964207061796d656e7420746f6b656e000000000000000000000000000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000020000000000000000000000000e3a9db1a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000080000000000000000064617461206e6f74207065726d6974746564206f6e207075626c69632073616c650000000000000000000000000000000000000000000000000000000000000073616c6520686173206e6f74207374617274656420796574000000000000000073616c652068617320656e64656400000000000000000000000000000000000073616c6520627579206c696d69742072656163686564000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006e6f7420796f7572207475726e207965740000000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400005265656e7472616e637947756172643a207265656e7472616e742063616c6c006e6174697665207061796d656e74732064697361626c6564000000000000000000000000000000000000000000000000000000400000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39020000020000000000000000000000000000002400000000000000000000000002000000000000000000000000000000000000000000000000000000000000005472616e73666572206661696c65642e000000000000000000000000000000003b381fdfc0e2729a70e8b26ae2397e9014f703a8235b557f5581c4ed47280fd20000000000000000000000000000000000000060000000800000000000000000a7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb00000000000000000000000000000000000000400000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd000000000000000000000000000000000000000000000000fffffffffffffe5f00000000000000000000000000000000000000000000000000000000f48657000000000000000000000000000000000000000000000000000000000000093a804f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ffffffffffffffffffffffff000000000000000000000000000000000000000042cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd180b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da3f19e3240beb82d0dfa0a35ed50201f0ac38ea92b9b29450527293aa8ccd0979b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e01806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c726561ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000fffffffffffffedf73616c65206973206f7665723a2063616e6e6f74207570617465000000000000746172740000000000000000000000000000000000000000000000000000000065646974696e672073616c654d6178696d756d2061667465722073616c65207300000000000000000000000000000000000000000000000000000000f48657010000000000000000000000000000000000000000000000000000000000093a816178517565756554696d6500000000000000000000000000000000000000000073616c65206d757374206265206f70656e20666f72206174206c65617374206d000000000000000000000000000000000000000000000000ffffffffffffff7b010000bf8042c7a73f97bf987e5e255a28fcb320c2ced98580994ffc1d20849d9c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd02000000000000000000000000000000000000840000000000000000000000008129fc1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000746f6b656e20616e64206f7261636c65206c656e6774687320213d0000000000746f6b656e20616e6420646563696d616c73206c656e6774687320213d0000000000000000000000000000010000000000000000000000000000000000000000ffffffffffffffffffffff000000000000000000000000000000000000000000b08510a4a112663ff701fcf43686a47fd456cb1a471dd63d662b73612cf700b31573dfedb5172e215558f8ffa409a71a5e42c596c15c482a04ff548914ebfa77746f6b656e206f7261636c65203d3d20300000000000000000000000000000007061796d656e7420746f6b656e203d3d20300000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6e6174697665206f7261636c65203d3d203000000000000000000000000000006e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206970757263686173654d696e696d756d203e20757365724d6178696d756d000000757365724d6178696d756d203e2073616c654d6178696d756d00000000000000757365724d6178696d756d203d3d20300000000000000000000000000000000073616c654d6178696d756d203d3d203000000000000000000000000000000000726563697069656e74203d3d20616464726573732830290000000000000000006d61782071756575652074696d65203e20363034383030202831207765656b29656e64203e203431303234343438303020284a616e20312032313030290000007374617274203e203431303234343438303020284a616e20312032313030290051cff8d90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000008000000000000000000200000000000000000000000000000000000020000000800000000000000000bfbef9c12fc2cf7df9f0b7679d5863e31a093e9c2c8d5dd9de1ddca31a0748284469737472696275746f72203d3d20616464726573732830290000000000000070a0823100000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000f4a44a7f605c4971a27bcecb448108e6328b7fad34fab5bff4f69377294b826d000000000000000000000000000000000000000000000000ffffffffffffff800200000000000000000000000000000000000000000000a000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffffc0feaf968c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff7374616c65207072696365000000000000000000000000000000000000000000726f756e64206e6f7420636f6d706c6574650000000000000000000000000000616e73776572203d3d20300000000000000000000000000000000000000000006e65676174697665207072696365000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000756e6b6e6f776e2064617461000000000000000000000000000000000000000064617461206c656e67746820213d203333206279746573000000000000000000707572636861736520756e646572206d696e696d756d00000000000000000000707572636861736520657863656564732073616c65206c696d697400000000007075726368617365206578636565647320796f7572206c696d6974000000000023b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff60000000000000000000000000000000000000000000000000ffffffffffffff1f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000f340fa010000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000071dc5f4b7c6a8e899cda217d169f74865e4d2fb321474f446a14cc9f880db73e", "entries": [ { "constructorArgs": [ @@ -980,8 +980,8 @@ "factoryDeps": [ "0x0002000000000002000500000000000200000000030100190000006003300270000000900330019700010000003103550000008004000039000000400040043f0000000102200190000000280000c13d000000040230008c000000ff0000413d000000000201043b000000e002200270000000920420009c000000300000a13d000000930420009c000000540000213d000000960420009c000000d20000613d000000970220009c000000ff0000c13d0000000002000416000000240330008c000000ff0000413d000000000202004b000000ff0000c13d0000000401100370000000000101043b0000009b0210009c000000ff0000213d00000000001004350000006501000039000000200010043f0000000001000019023a021e0000040f000000000101041a000000800010043f000000a5010000410000023b0001042e0000000001000416000000000101004b000000ff0000c13d00000020010000390000010000100443000001200000044300000091010000410000023b0001042e000000980420009c000000830000613d000000990120009c000000db0000613d0000009a0120009c000000ff0000c13d0000000001000416000000000101004b000000ff0000c13d0000000004000415000000050440008a0000000504400210000000000300041a0000ff0002300190000001010000c13d0000000004000415000000040440008a0000000504400210000000ff01300190000001010000c13d000000ab0130019700000101011001bf0000000002000019000000000010041b0000ff0001100190000001270000c13d000000400100043d0000006402100039000000b10300004100000000003204350000004402100039000000b203000041000000000032043500000024021000390000002b030000390000017b0000013d000000940420009c000000f50000613d000000950220009c000000ff0000c13d000000240230008c000000ff0000413d0000000401100370000000000101043b0000009b041001970000009b0110009c000000ff0000213d0000003301000039000000000101041a0000009b011001970000000002000411000000000121004b000001650000c13d00000000004004350000006501000039000000200010043f00000090010000410000000002000414000000900320009c0000000002018019000000c0012002100000009c011001c70000801002000039000300000004001d023a02350000040f00000003050000290000000102200190000000ff0000613d000000000101043b000000000301041a00000000020004160000000003320019000000000423004b00000000040000190000000104004039000000010440008c0000018a0000c13d0000009f0100004100000000001004350000001101000039000000040010043f000000a0010000410000023c000104300000000002000416000000240330008c000000ff0000413d000000000202004b000000ff0000c13d0000000401100370000000000101043b0000009b031001970000009b0110009c000000ff0000213d0000003301000039000000000101041a0000009b011001970000000002000411000000000121004b000001650000c13d00000000003004350000006501000039000000200010043f00000090040000410000000001000414000000900210009c0000000001048019000000c0011002100000009c011001c70000801002000039000300000003001d023a02350000040f0000000102200190000000ff0000613d000000000101043b000000000101041a000200000001001d0000000001000414000000900210009c0000009001008041000000c0011002100000009c011001c70000801002000039023a02350000040f0000000102200190000000ff0000613d000000000101043b000000000001041b000000b50100004100000000001004390000000001000410000000040010044300000090010000410000000002000414000000900320009c0000000002018019000000c001200210000000a7011001c70000800a02000039023a02350000040f00000001022001900000016e0000613d000000000101043b000000020110006c0000019b0000813d000000400100043d0000004402100039000000bb03000041000000000032043500000024021000390000001d030000390000000000320435000000a10200004100000000002104350000000402100039000000200300003900000000003204350000009002000041000000900310009c00000000010280190000004001100210000000bc011001c70000023c000104300000000001000416000000000101004b000000ff0000c13d0000003301000039000000000101041a0000009b01100197000000800010043f000000a5010000410000023b0001042e0000000001000416000000000101004b000000ff0000c13d0000003301000039000000000201041a0000009b052001970000000003000411000000000335004b000001650000c13d000000ac02200197000000000021041b00000090010000410000000002000414000000900320009c0000000002018019000000c001200210000000ad011001c70000800d020000390000000303000039000000ae040000410000000006000019023a02300000040f0000000101200190000000ff0000613d00000000010000190000023b0001042e0000000002000416000000240330008c000000ff0000413d000000000202004b000000ff0000c13d0000000401100370000000000101043b0000009b021001970000009b0310009c000001510000a13d00000000010000190000023c00010430000300000004001d000100000002001d000200000003001d000000a60100004100000000001004390000000001000410000000040010044300000090010000410000000002000414000000900320009c0000000002018019000000c001200210000000a7011001c70000800202000039023a02350000040f00000001022001900000016e0000613d000000000101043b000000000101004b0000016f0000c13d0000000203000029000000ff0130018f000000010110008c0000000001000019000000010100603900000003020000290000000502200270000000000201001f000001720000c13d000000010100006b000000440000613d000001000100008a000000000113016f000000010200003900000001011001bf000000000010041b0000ff00011001900000004a0000613d000300000002001d00000000010004110000009b061001970000003301000039000000000201041a000000ac03200197000000000363019f000000000031041b00000090010000410000000003000414000000900430009c0000000003018019000000c001300210000000ad011001c70000009b052001970000800d020000390000000303000039000000ae04000041023a02300000040f0000000101200190000000ff0000613d000000030100006b000000f30000c13d000000000200041a000000af01200197000000000010041b0000000103000039000000400100043d000000000031043500000090020000410000000004000414000000900540009c0000000004028019000000900510009c00000000010280190000004001100210000000c002400210000000000112019f0000009d011001c70000800d02000039000000b004000041000000f00000013d0000003303000039000000000303041a0000009b033001970000000004000411000000000343004b000001650000c13d000000000202004b000001870000c13d000000a101000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f000000a201000041000000c40010043f000000a301000041000000e40010043f000000a4010000410000023c00010430000000a101000041000000800010043f0000002001000039000000840010043f000000a40010043f000000b301000041000000c40010043f000000b4010000410000023c00010430000000000001042f00000003010000290000000501100270000000000100001f000000400100043d0000006402100039000000a80300004100000000003204350000004402100039000000a903000041000000000032043500000024021000390000002e030000390000000000320435000000a10200004100000000002104350000000402100039000000200300003900000000003204350000009002000041000000900310009c00000000010280190000004001100210000000aa011001c70000023c00010430023a02070000040f00000000010000190000023b0001042e000000000031041b000000400100043d000000000021043500000090020000410000000003000414000000900430009c0000000003028019000000900410009c00000000010280190000004001100210000000c002300210000000000112019f0000009d011001c70000800d0200003900000002030000390000009e04000041000000f00000013d00000000010004140000000304000029000000040240008c000001a20000c13d00000001020000390000000001000031000001b30000013d0000009002000041000000900310009c0000000001028019000000c001100210000000020200006b000001aa0000c13d0000000002040019000001ae0000013d000000ad011001c7000080090200003900000002030000290000000005000019023a02300000040f00010000000103550000006001100270000000900010019d0000009001100197000000000301004b000001c90000c13d000000400100043d0000000102200190000001fe0000613d0000000202000029000000000021043500000090020000410000000003000414000000900430009c0000000003028019000000900410009c00000000010280190000004001100210000000c002300210000000000112019f0000009d011001c70000800d020000390000000203000039000000ba040000410000000305000029000000f00000013d000000b60310009c000001f80000813d0000001f03100039000000200400008a000000000343016f0000003f03300039000000000343016f000000400400043d0000000003340019000000000543004b00000000050000190000000105004039000000b70630009c000001f80000213d0000000105500190000001f80000c13d000000400030043f0000001f0310018f000000000414043600000001050003670000000501100272000001e80000613d000000000600001900000005076002100000000008740019000000000775034f000000000707043b00000000007804350000000106600039000000000716004b000001e00000413d000000000603004b000001b50000613d0000000501100210000000000515034f00000000011400190000000303300210000000000401043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000310435000001b50000013d0000009f0100004100000000001004350000004101000039000000040010043f000000a0010000410000023c000104300000006402100039000000b80300004100000000003204350000004402100039000000b903000041000000000032043500000024021000390000003a030000390000017b0000013d0000009b061001970000003301000039000000000201041a000000ac03200197000000000363019f000000000031041b00000090010000410000000003000414000000900430009c0000000003018019000000c001300210000000ad011001c70000009b052001970000800d020000390000000303000039000000ae04000041023a02300000040f00000001012001900000021b0000613d000000000001042d00000000010000190000023c00010430000000000001042f0000009002000041000000900310009c00000000010280190000000003000414000000900430009c0000000003028019000000c0023002100000004001100210000000000121019f0000009c011001c70000801002000039023a02350000040f00000001022001900000022e0000613d000000000101043b000000000001042d00000000010000190000023c0001043000000233002104210000000102000039000000000001042d0000000002000019000000000001042d00000238002104230000000102000039000000000001042d0000000002000019000000000001042d0000023a000004320000023b0001042e0000023c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000008da5cb5a00000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f340fa01000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000e3a9db1a0000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000008129fc1c000000000000000000000000ffffffffffffffffffffffffffffffffffffffff020000000000000000000000000000000000004000000000000000000000000002000000000000000000000000000000000000200000000000000000000000002da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c44e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000000000000000000000000000000000200000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000647920696e697469616c697a6564000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e747261637420697320616c7265610000000000000000000000000000000000000084000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986e697469616c697a696e67000000000000000000000000000000000000000000496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420694f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657200000000000000000000000000000000000000640000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f390000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff6563697069656e74206d61792068617665207265766572746564000000000000416464726573733a20756e61626c6520746f2073656e642076616c75652c20727084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5416464726573733a20696e73756666696369656e742062616c616e6365000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000000000000000000000000000003dae99781553425da58a6990bef3d45f6ff97e2416794552f313e1489250dab9" ], - "address": "0xCa785532ad49f974E41171fA4Ea8E4B5381aE0bD", - "txHash": "0x47fb517e2b600ca1445c070b564cc0571b452200dbf0e68fe9bf71ea2eb18018" + "address": "0x6363D8b7fCe4A3727004F31fA0Fc460Cf12762ad", + "txHash": "0xec375705130f3d38cb22f16a6bc553d1d4c155a2a6fe9e0b89d30a90cb489478" } ] } diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol/FlatPriceSaleFactory_v_2_1.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol/FlatPriceSaleFactory_v_2_1.json new file mode 100644 index 00000000..4f31205a --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol/FlatPriceSaleFactory_v_2_1.json @@ -0,0 +1,257 @@ +{ + "sourceName": "contracts/ts/sale/v2.1/FlatPriceSaleFactory.sol", + "contractName": "FlatPriceSaleFactory_v_2_1", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_implementation", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + }, + { + "indexed": true, + "internalType": "contract FlatPriceSale_v_2_1", + "name": "clone", + "type": "address" + }, + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "indexed": false, + "internalType": "struct Config", + "name": "config", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "string", + "name": "baseCurrency", + "type": "string" + }, + { + "indexed": false, + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "nativeOracle", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "nativePaymentsEnabled", + "type": "bool" + } + ], + "name": "NewSale", + "type": "event" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "internalType": "struct Config", + "name": "_config", + "type": "tuple" + }, + { + "internalType": "string", + "name": "_baseCurrency", + "type": "string" + }, + { + "internalType": "bool", + "name": "_nativePaymentsEnabled", + "type": "bool" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "_nativeTokenPriceOracle", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable[]", + "name": "tokens", + "type": "address[]" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck[]", + "name": "oracles", + "type": "address[]" + }, + { + "internalType": "uint8[]", + "name": "decimals", + "type": "uint8[]" + } + ], + "name": "newSale", + "outputs": [ + { + "internalType": "contract FlatPriceSale_v_2_1", + "name": "sale", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x0002000000000002001e000000000002000100000001035500000000030100190000006003300270000000de0030019d000000de033001970000000102200190000000260000c13d000000800b0000390000004000b0043f000000040230008c0000031b0000413d000000000201043b000000e002200270000000e20420009c000001140000613d000000e30420009c000000560000613d000000e40120009c0000031b0000c13d0000000001000416000000000101004b0000031b0000c13d0000000001000412001e00000001001d001d00000000001d0000800501000039000000440300003900000000040004150000001e0440008a0000000504400210000000e9020000410373034f0000040f000000e001100197000000800010043f000000fc01000041000003740001042e0000000002000416000000000202004b0000031b0000c13d0000001f02300039000000df02200197000000a002200039000000400020043f0000001f0230018f0000000504300272000000390000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000310000413d000000000502004b000000480000613d0000000504400210000000000141034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000200130008c0000031b0000413d000000a00100043d000000e00210009c0000031b0000213d000000800010043f000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000e101000041000003740001042e0000000002000416000001040430008c0000031b0000413d000000000202004b0000031b0000c13d0000000402100370000000000a02043b000000e002a0009c0000031b0000213d0000002402100370000000000902043b000000e70290009c0000031b0000213d0000000002930049000000e804000041000001240520008c00000000050000190000000005044019000000e802200197000000000602004b000000000400a019000000e80220009c000000000405c019000000000204004b0000031b0000c13d0000004402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000408200039000000000481034f000000000404043b000000e70540009c0000031b0000213d00000000024200190000002402200039000000000232004b0000031b0000213d0000006402100370000000000602043b000000000206004b0000000002000019000000010200c039000000000226004b0000031b0000c13d0000008402100370000000000702043b000000e00270009c0000031b0000213d000000a402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000404200039000000000441034f000000000504043b000000e70450009c0000031b0000213d001c00240020003d00000005025002100000001c02200029000000000232004b0000031b0000213d000000c402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000404200039000000000441034f000000000404043b001b00000004001d000000e70440009c0000031b0000213d001a00240020003d0000001b0200002900000005022002100000001a02200029000000000232004b0000031b0000213d000000e402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000404200039000000000141034f000000000101043b001700000001001d000000e70110009c0000031b0000213d001900240020003d000000170100002900000005011002100000001901100029000000000131004b0000031b0000213d00140000000b001d00100000000a001d001500000009001d001100000008001d001200000007001d001300000006001d001800000005001d000000e90100004100000000001004390000000001000412001600000001001d00000004001004430000002400000443000000de030000410000000001000414000000de0210009c0000000001038019000000c001100210000000ea011001c700008005020000390373036e0000040f00000001022001900000031d0000613d000000000101043b0000008801100270000000eb01100197000000ec011001c70000000000100435000000e90100004100000000001004390000001601000029000000040010044300000024000004430000000001000414000000de0210009c000000de01008041000000c001100210000000ea011001c700008005020000390373036e0000040f00000001022001900000031d0000613d000000000101043b0000007801100210000000ed011001c7000000200010043f0000000001000414000000ee02000041000000090020043f0000000d0000043f00000060020000390000004d0020043f0000004d0200008a0000006d0020043f000000de03000041000000de0210009c0000000001038019000000c001100210000000ef011001c70000800602000039037303690000040f0000000102200190000001030000613d000000000101043b000f00e00010019c000001240000c13d000000400100043d0000004402100039000000f9030000410000000000320435000000240210003900000016030000390000000000320435000000fa020000410000000000210435000000040210003900000020030000390000000000320435000000de0210009c000000de010080410000004001100210000000fb011001c700000375000104300000000001000416000000000101004b0000031b0000c13d000000c001000039000000400010043f0000000301000039000000800010043f000000e502000041000000a00020043f0000002003000039000000c00030043f000000e00010043f000001000020043f000001030000043f000000e601000041000003740001042e000000400200043d0000001401000029000e00000002001d00000000021204360000001505000029001400040050003d00000001010003670000001403100360000000000303043b000000e00430009c0000031b0000213d0000000e07000029000000800470003900000000003404350000001406000029000d00200060003d0000000d03100360000000000303043b000000a0047000390000000000340435000c00400060003d0000000c03100360000000000303043b000000c0047000390000000000340435000b00600060003d0000000b03100360000000000303043b000000e0047000390000000000340435000a00800060003d0000000a03100360000000000303043b00000100047000390000000000340435000900a00060003d0000000903100360000000000303043b00000120047000390000000000340435000800c00060003d0000000803100360000000000303043b000001400470003900000000003404350000016003700039000700e00060003d0000000704100360000000000404043b0000000000430435000601000060003d0000000603100360000000000303043b00000000040000310000000005540049000000230550008a000000e806000041000000000753004b00000000070000190000000007068019000000e805500197000000e808300197000000000958004b0000000006008019000000000558013f000000e80550009c000000000607c019000000000506004b0000031b0000c13d0000001405300029000000000351034f000000000303043b000000e70630009c0000031b0000213d00000020055000390000000004340049000000e806000041000000000745004b00000000070000190000000007062019000000e804400197000000e808500197000000000948004b0000000006008019000000000448013f000000e80440009c000000000607c019000000000406004b0000031b0000c13d0000000e0700002900000180047000390000012006000039000200000006001d0000000000640435000001a0047000390000000000340435000000000651034f0000001f0530018f000001c0047000390000000507300272000001920000613d00000000080000190000000509800210000000000a940019000000000996034f000000000909043b00000000009a04350000000108800039000000000978004b0000018a0000413d000000000805004b000001a10000613d0000000507700210000000000676034f00000000077400190000000305500210000000000807043300000000085801cf000000000858022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000585019f0000000000570435000000000543001900000000000504350000001f033000390003002000000092000000030330017f00000000034300190000000e0430006a00000000004204350000001104000029000000000241034f000100200040003d0000000101100360000000000402043b00000000074304360000001f0240018f000400000004001d0000000503400272000001bc0000613d000000000400001900000005054002100000000006570019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000001b40000413d000500000007001d000000000402004b000001cc0000613d0000000503300210000000000131034f00000005033000290000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f00000000001304350000000402000029000000050120002900000000000104350000000e03000029000000600130003900000013020000290000000000210435000000400130003900000012020000290000000000210435000000e9010000410000000000100439000000160100002900000004001004430000002400000443000000de030000410000000001000414000000de0210009c0000000001038019000000c001100210000000ea011001c700008005020000390373036e0000040f00000001022001900000031d0000613d00000004020000290000001f02200039000000030220017f0000000e0400002900000005034000690000000002230019000000de0320009c000000de0500004100000000020580190000006002200210000000de0340009c00000000040580190000004003400210000000000232019f000000000301043b0000000001000414000000de0410009c0000000001058019000000c001100210000000000121019f000000f0011001c7000000e0053001970000800d020000390000000303000039000000f1040000410000000f06000029037303690000040f00000001012001900000031b0000613d000000f20100004100000000001004390000000f010000290000000400100443000000de010000410000000002000414000000de0320009c0000000002018019000000c001200210000000f3011001c700008002020000390373036e0000040f00000001022001900000031d0000613d000000000101043b000000000101004b000000150400002900000010030000290000031b0000613d000000400500043d000000240150003900000100020000390000000000210435000000f4010000410000000000150435001600000005001d0000000401500039000000000031043500000001010003670000001402100360000000000202043b000000e00320009c0000031b0000213d0000001605000029000001040350003900000000002304350000000d02100360000000000202043b000001240350003900000000002304350000000c02100360000000000202043b000001440350003900000000002304350000000b02100360000000000202043b000001640350003900000000002304350000000a02100360000000000202043b000001840350003900000000002304350000000902100360000000000202043b000001a40350003900000000002304350000000802100360000000000202043b000001c40350003900000000002304350000000702100360000001e403500039000000000202043b00000000002304350000000602100360000000000202043b00000000030000310000000004430049000000230440008a000000e805000041000000000642004b00000000060000190000000006058019000000e804400197000000e807200197000000000847004b0000000005008019000000000447013f000000e80440009c000000000506c019000000000405004b0000031b0000c13d0000001404200029000000000241034f000000000202043b000000e70520009c0000031b0000213d00000020044000390000000003230049000000e805000041000000000634004b00000000060000190000000006052019000000e803300197000000e807400197000000000837004b0000000005008019000000000337013f000000e80330009c000000000506c019000000000305004b0000031b0000c13d000000160600002900000204036000390000000205000029000000000053043500000224036000390000000000230435000000000541034f0000001f0420018f000002440360003900000005062002720000027c0000613d000000000700001900000005087002100000000009830019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000002740000413d000000000704004b0000028b0000613d0000000506600210000000000565034f00000000066300190000000304400210000000000706043300000000074701cf000000000747022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000474019f0000000000460435000000000432001900000000000404350000001f02200039000000030220017f0000001604000029000000440440003900000240052000390000000000540435000000000232001900000001041003600000001103100360000000000303043b00000000023204360000001f0530018f0000000506300272000002a40000613d000000000700001900000005087002100000000009820019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b0000029c0000413d000000000705004b000002b30000613d0000000506600210000000000464034f00000000066200190000000305500210000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f00000000004604350000000004230019000000000004043500000016060000290000008404600039000000120500002900000000005404350000006404600039000000130500002900000000005404350000001f03300039000000030330017f00000000022300190000000003620049000000040330008a000000a404600039000000000034043500000018030000290000000002320436000000000303004b000002d30000613d00000000030000190000001c04100360000000000404043b000000e00540009c00000018050000290000031b0000213d00000000024204360000001c04000029001c00200040003d0000000103300039000000000453004b000002c80000413d00000016040000290000000003420049000000040330008a000000c40440003900000000003404350000001b030000290000000002320436000000000303004b000002e70000613d00000000030000190000001a04100360000000000404043b000000e00540009c0000031b0000213d00000000024204360000001a04000029001a00200040003d00000001033000390000001b0430006c000002dd0000413d00000016040000290000000003420049000000040330008a000000e404400039000000000034043500000017030000290000000002320436000000000303004b000002fb0000613d00000000030000190000001904100360000000000404043b000000ff0540008c0000031b0000213d00000000024204360000001904000029001900200040003d0000000103300039000000170430006c000002f10000413d00000000010004140000000f03000029000000040330008c000003120000613d00000016050000290000000002520049000000de03000041000000de0450009c000000000403001900000000040540190000004004400210000000de0520009c00000000020380190000006002200210000000000242019f000000de0410009c0000000001038019000000c001100210000000000112019f0000000f02000029037303690000040f0000000102200190000003280000613d0000001601000029000000f50110009c0000031e0000413d000000f70100004100000000001004350000004101000039000000040010043f000000f801000041000003750001043000000000010000190000037500010430000000000001042f0000001603000029000000400030043f0000000f010000290000000000130435000000de01000041000000de0230009c00000000030180190000004001300210000000f6011001c7000003740001042e000000400200043d000000000301001900000060033002700000001f0430018f000000de033001970000000505300272000003380000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003300000413d000000000604004b000003470000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000de01000041000000de0420009c000000000201801900000040012002100000006002300210000000000121019f0000037500010430000000000001042f00000000050100190000000000200439000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000231004b000003520000413d000000de010000410000000002000414000000de0420009c0000000002018019000000de0430009c00000000030180190000006001300210000000c002200210000000000112019f000000fd011001c700000000020500190373036e0000040f0000000102200190000003680000613d000000000101043b000000000001042d000000000001042f0000036c002104210000000102000039000000000001042d0000000002000019000000000001042d00000371002104230000000102000039000000000001042d0000000002000019000000000001042d0000037300000432000003740001042e00000375000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000ffa1ad74000000000000000000000000000000000000000000000000000000005f76426d000000000000000000000000000000000000000000000000000000005c60da1b322e3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000c00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e02000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff0000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf39c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd020000000000000000000000000000000000003700000009000000000000000002000000000000000000000000000000000000000000000000000000000000008cbdcd452e06fb30ddd0c122823be8f8622979a6c7acad4f6cc6501e200dd4971806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000669ad09200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000200000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000455243313136373a20637265617465206661696c65640000000000000000000008c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000200000008000000000000000000200000200000000000000000000000000000000000000000000000000000000fe26d3a68a8019ef1e6400cb70aebb29eb7a2cdf3018ba36a8bc36bd9bc9ef76", + "entries": [ + { + "constructorArgs": [ + "0x3A2e77Ac0F925fb8bCf0EE3Ed81F1f38080098C1" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0x76f5445532eA16859F8066cff317A949e8Fbe38D", + "txHash": "0x168226e4c3f2fa6bb894084575a955ad4c70c5cc5ab4617581fec1986680e903" + }, + { + "constructorArgs": [ + "0x6363D8b7fCe4A3727004F31fA0Fc460Cf12762ad" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0x5Bbe5863F0158D9830711D2ceE12DD7D51415b6c", + "txHash": "0xaee51c37938a77b186eb19d5d0c196a0945f024fefd3b71442d8b54fabfda41d" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory_v_2_1.sol/FlatPriceSaleFactory_v_2_1.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory_v_2_1.sol/FlatPriceSaleFactory_v_2_1.json new file mode 100644 index 00000000..9485586a --- /dev/null +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncMainnet/contracts/ts/sale/v2.1/FlatPriceSaleFactory_v_2_1.sol/FlatPriceSaleFactory_v_2_1.json @@ -0,0 +1,267 @@ +{ + "sourceName": "contracts/ts/sale/v2.1/FlatPriceSaleFactory_v_2_1.sol", + "contractName": "FlatPriceSaleFactory_v_2_1", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_implementation", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + }, + { + "indexed": true, + "internalType": "contract FlatPriceSale_v_2_1", + "name": "clone", + "type": "address" + }, + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "indexed": false, + "internalType": "struct Config", + "name": "config", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "string", + "name": "baseCurrency", + "type": "string" + }, + { + "indexed": false, + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "nativeOracle", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "nativePaymentsEnabled", + "type": "bool" + } + ], + "name": "NewSale", + "type": "event" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "components": [ + { + "internalType": "address payable", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "saleMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userMaximum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "purchaseMinimum", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxQueueTime", + "type": "uint256" + }, + { + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "internalType": "struct Config", + "name": "_config", + "type": "tuple" + }, + { + "internalType": "string", + "name": "_baseCurrency", + "type": "string" + }, + { + "internalType": "bool", + "name": "_nativePaymentsEnabled", + "type": "bool" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck", + "name": "_nativeTokenPriceOracle", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable[]", + "name": "tokens", + "type": "address[]" + }, + { + "internalType": "contract IOracleOrL2OracleWithSequencerCheck[]", + "name": "oracles", + "type": "address[]" + }, + { + "internalType": "uint8[]", + "name": "decimals", + "type": "uint8[]" + } + ], + "name": "newSale", + "outputs": [ + { + "internalType": "contract FlatPriceSale_v_2_1", + "name": "sale", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x0002000000000002001e000000000002000100000001035500000000030100190000006003300270000000de0030019d000000de033001970000000102200190000000260000c13d000000800b0000390000004000b0043f000000040230008c0000031b0000413d000000000201043b000000e002200270000000e20420009c000001140000613d000000e30420009c000000560000613d000000e40120009c0000031b0000c13d0000000001000416000000000101004b0000031b0000c13d0000000001000412001e00000001001d001d00000000001d0000800501000039000000440300003900000000040004150000001e0440008a0000000504400210000000e9020000410373034f0000040f000000e001100197000000800010043f000000fc01000041000003740001042e0000000002000416000000000202004b0000031b0000c13d0000001f02300039000000df02200197000000a002200039000000400020043f0000001f0230018f0000000504300272000000390000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000310000413d000000000502004b000000480000613d0000000504400210000000000141034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f0000000000140435000000200130008c0000031b0000413d000000a00100043d000000e00210009c0000031b0000213d000000800010043f000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000e101000041000003740001042e0000000002000416000001040430008c0000031b0000413d000000000202004b0000031b0000c13d0000000402100370000000000a02043b000000e002a0009c0000031b0000213d0000002402100370000000000902043b000000e70290009c0000031b0000213d0000000002930049000000e804000041000001240520008c00000000050000190000000005044019000000e802200197000000000602004b000000000400a019000000e80220009c000000000405c019000000000204004b0000031b0000c13d0000004402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000408200039000000000481034f000000000404043b000000e70540009c0000031b0000213d00000000024200190000002402200039000000000232004b0000031b0000213d0000006402100370000000000602043b000000000206004b0000000002000019000000010200c039000000000226004b0000031b0000c13d0000008402100370000000000702043b000000e00270009c0000031b0000213d000000a402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000404200039000000000441034f000000000504043b000000e70450009c0000031b0000213d001c00240020003d00000005025002100000001c02200029000000000232004b0000031b0000213d000000c402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000404200039000000000441034f000000000404043b001b00000004001d000000e70440009c0000031b0000213d001a00240020003d0000001b0200002900000005022002100000001a02200029000000000232004b0000031b0000213d000000e402100370000000000202043b000000e70420009c0000031b0000213d0000002304200039000000000434004b0000031b0000813d0000000404200039000000000141034f000000000101043b001700000001001d000000e70110009c0000031b0000213d001900240020003d000000170100002900000005011002100000001901100029000000000131004b0000031b0000213d00140000000b001d00100000000a001d001500000009001d001100000008001d001200000007001d001300000006001d001800000005001d000000e90100004100000000001004390000000001000412001600000001001d00000004001004430000002400000443000000de030000410000000001000414000000de0210009c0000000001038019000000c001100210000000ea011001c700008005020000390373036e0000040f00000001022001900000031d0000613d000000000101043b0000008801100270000000eb01100197000000ec011001c70000000000100435000000e90100004100000000001004390000001601000029000000040010044300000024000004430000000001000414000000de0210009c000000de01008041000000c001100210000000ea011001c700008005020000390373036e0000040f00000001022001900000031d0000613d000000000101043b0000007801100210000000ed011001c7000000200010043f0000000001000414000000ee02000041000000090020043f0000000d0000043f00000060020000390000004d0020043f0000004d0200008a0000006d0020043f000000de03000041000000de0210009c0000000001038019000000c001100210000000ef011001c70000800602000039037303690000040f0000000102200190000001030000613d000000000101043b000f00e00010019c000001240000c13d000000400100043d0000004402100039000000f9030000410000000000320435000000240210003900000016030000390000000000320435000000fa020000410000000000210435000000040210003900000020030000390000000000320435000000de0210009c000000de010080410000004001100210000000fb011001c700000375000104300000000001000416000000000101004b0000031b0000c13d000000c001000039000000400010043f0000000301000039000000800010043f000000e502000041000000a00020043f0000002003000039000000c00030043f000000e00010043f000001000020043f000001030000043f000000e601000041000003740001042e000000400200043d0000001401000029000e00000002001d00000000021204360000001505000029001400040050003d00000001010003670000001403100360000000000303043b000000e00430009c0000031b0000213d0000000e07000029000000800470003900000000003404350000001406000029000d00200060003d0000000d03100360000000000303043b000000a0047000390000000000340435000c00400060003d0000000c03100360000000000303043b000000c0047000390000000000340435000b00600060003d0000000b03100360000000000303043b000000e0047000390000000000340435000a00800060003d0000000a03100360000000000303043b00000100047000390000000000340435000900a00060003d0000000903100360000000000303043b00000120047000390000000000340435000800c00060003d0000000803100360000000000303043b000001400470003900000000003404350000016003700039000700e00060003d0000000704100360000000000404043b0000000000430435000601000060003d0000000603100360000000000303043b00000000040000310000000005540049000000230550008a000000e806000041000000000753004b00000000070000190000000007068019000000e805500197000000e808300197000000000958004b0000000006008019000000000558013f000000e80550009c000000000607c019000000000506004b0000031b0000c13d0000001405300029000000000351034f000000000303043b000000e70630009c0000031b0000213d00000020055000390000000004340049000000e806000041000000000745004b00000000070000190000000007062019000000e804400197000000e808500197000000000948004b0000000006008019000000000448013f000000e80440009c000000000607c019000000000406004b0000031b0000c13d0000000e0700002900000180047000390000012006000039000200000006001d0000000000640435000001a0047000390000000000340435000000000651034f0000001f0530018f000001c0047000390000000507300272000001920000613d00000000080000190000000509800210000000000a940019000000000996034f000000000909043b00000000009a04350000000108800039000000000978004b0000018a0000413d000000000805004b000001a10000613d0000000507700210000000000676034f00000000077400190000000305500210000000000807043300000000085801cf000000000858022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000585019f0000000000570435000000000543001900000000000504350000001f033000390003002000000092000000030330017f00000000034300190000000e0430006a00000000004204350000001104000029000000000241034f000100200040003d0000000101100360000000000402043b00000000074304360000001f0240018f000400000004001d0000000503400272000001bc0000613d000000000400001900000005054002100000000006570019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000001b40000413d000500000007001d000000000402004b000001cc0000613d0000000503300210000000000131034f00000005033000290000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f00000000001304350000000402000029000000050120002900000000000104350000000e03000029000000600130003900000013020000290000000000210435000000400130003900000012020000290000000000210435000000e9010000410000000000100439000000160100002900000004001004430000002400000443000000de030000410000000001000414000000de0210009c0000000001038019000000c001100210000000ea011001c700008005020000390373036e0000040f00000001022001900000031d0000613d00000004020000290000001f02200039000000030220017f0000000e0400002900000005034000690000000002230019000000de0320009c000000de0500004100000000020580190000006002200210000000de0340009c00000000040580190000004003400210000000000232019f000000000301043b0000000001000414000000de0410009c0000000001058019000000c001100210000000000121019f000000f0011001c7000000e0053001970000800d020000390000000303000039000000f1040000410000000f06000029037303690000040f00000001012001900000031b0000613d000000f20100004100000000001004390000000f010000290000000400100443000000de010000410000000002000414000000de0320009c0000000002018019000000c001200210000000f3011001c700008002020000390373036e0000040f00000001022001900000031d0000613d000000000101043b000000000101004b000000150400002900000010030000290000031b0000613d000000400500043d000000240150003900000100020000390000000000210435000000f4010000410000000000150435001600000005001d0000000401500039000000000031043500000001010003670000001402100360000000000202043b000000e00320009c0000031b0000213d0000001605000029000001040350003900000000002304350000000d02100360000000000202043b000001240350003900000000002304350000000c02100360000000000202043b000001440350003900000000002304350000000b02100360000000000202043b000001640350003900000000002304350000000a02100360000000000202043b000001840350003900000000002304350000000902100360000000000202043b000001a40350003900000000002304350000000802100360000000000202043b000001c40350003900000000002304350000000702100360000001e403500039000000000202043b00000000002304350000000602100360000000000202043b00000000030000310000000004430049000000230440008a000000e805000041000000000642004b00000000060000190000000006058019000000e804400197000000e807200197000000000847004b0000000005008019000000000447013f000000e80440009c000000000506c019000000000405004b0000031b0000c13d0000001404200029000000000241034f000000000202043b000000e70520009c0000031b0000213d00000020044000390000000003230049000000e805000041000000000634004b00000000060000190000000006052019000000e803300197000000e807400197000000000837004b0000000005008019000000000337013f000000e80330009c000000000506c019000000000305004b0000031b0000c13d000000160600002900000204036000390000000205000029000000000053043500000224036000390000000000230435000000000541034f0000001f0420018f000002440360003900000005062002720000027c0000613d000000000700001900000005087002100000000009830019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000002740000413d000000000704004b0000028b0000613d0000000506600210000000000565034f00000000066300190000000304400210000000000706043300000000074701cf000000000747022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000474019f0000000000460435000000000432001900000000000404350000001f02200039000000030220017f0000001604000029000000440440003900000240052000390000000000540435000000000232001900000001041003600000001103100360000000000303043b00000000023204360000001f0530018f0000000506300272000002a40000613d000000000700001900000005087002100000000009820019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b0000029c0000413d000000000705004b000002b30000613d0000000506600210000000000464034f00000000066200190000000305500210000000000706043300000000075701cf000000000757022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000474019f00000000004604350000000004230019000000000004043500000016060000290000008404600039000000120500002900000000005404350000006404600039000000130500002900000000005404350000001f03300039000000030330017f00000000022300190000000003620049000000040330008a000000a404600039000000000034043500000018030000290000000002320436000000000303004b000002d30000613d00000000030000190000001c04100360000000000404043b000000e00540009c00000018050000290000031b0000213d00000000024204360000001c04000029001c00200040003d0000000103300039000000000453004b000002c80000413d00000016040000290000000003420049000000040330008a000000c40440003900000000003404350000001b030000290000000002320436000000000303004b000002e70000613d00000000030000190000001a04100360000000000404043b000000e00540009c0000031b0000213d00000000024204360000001a04000029001a00200040003d00000001033000390000001b0430006c000002dd0000413d00000016040000290000000003420049000000040330008a000000e404400039000000000034043500000017030000290000000002320436000000000303004b000002fb0000613d00000000030000190000001904100360000000000404043b000000ff0540008c0000031b0000213d00000000024204360000001904000029001900200040003d0000000103300039000000170430006c000002f10000413d00000000010004140000000f03000029000000040330008c000003120000613d00000016050000290000000002520049000000de03000041000000de0450009c000000000403001900000000040540190000004004400210000000de0520009c00000000020380190000006002200210000000000242019f000000de0410009c0000000001038019000000c001100210000000000112019f0000000f02000029037303690000040f0000000102200190000003280000613d0000001601000029000000f50110009c0000031e0000413d000000f70100004100000000001004350000004101000039000000040010043f000000f801000041000003750001043000000000010000190000037500010430000000000001042f0000001603000029000000400030043f0000000f010000290000000000130435000000de01000041000000de0230009c00000000030180190000004001300210000000f6011001c7000003740001042e000000400200043d000000000301001900000060033002700000001f0430018f000000de033001970000000505300272000003380000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003300000413d000000000604004b000003470000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000de01000041000000de0420009c000000000201801900000040012002100000006002300210000000000121019f0000037500010430000000000001042f00000000050100190000000000200439000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000231004b000003520000413d000000de010000410000000002000414000000de0420009c0000000002018019000000de0430009c00000000030180190000006001300210000000c002200210000000000112019f000000fd011001c700000000020500190373036e0000040f0000000102200190000003680000613d000000000101043b000000000001042d000000000001042f0000036c002104210000000102000039000000000001042d0000000002000019000000000001042d00000371002104230000000102000039000000000001042d0000000002000019000000000001042d0000037300000432000003740001042e00000375000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000ffa1ad74000000000000000000000000000000000000000000000000000000005f76426d000000000000000000000000000000000000000000000000000000005c60da1b322e3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000c00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e02000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff0000000000000000003d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000000000000000000005af43d82803e903d91602b57fd5bf39c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd020000000000000000000000000000000000003700000009000000000000000002000000000000000000000000000000000000000000000000000000000000008cbdcd452e06fb30ddd0c122823be8f8622979a6c7acad4f6cc6501e200dd4971806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000669ad09200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000200000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000455243313136373a20637265617465206661696c65640000000000000000000008c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000200000008000000000000000000200000200000000000000000000000000000000000000000000000000000000436d0ce07c0fccef0ceef8fc90b44cf4ab8b26f653de694ec11fc47c3c3afa65", + "entries": [ + { + "constructorArgs": [ + "0x64EDCC756F7A6c8dAEEb36965538dF8573309B66" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xE705edf757c8054CE6ef380Bc8B6B9C078116118", + "txHash": "0x886c70ff28f648fdfc1853a2e917c1c8de30af883f4b2c1f716364026208fd21" + }, + { + "constructorArgs": [ + "0x817EE5e652e6728C8E2b4Fc03686011fB14FF60E" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0x95FC70748044cBe60c3114c8E649398Feb4B737D", + "txHash": "0xe241552b7ad6e978dbedf236165dfeb51be872e67ec546ad79e38701b12057aa" + }, + { + "constructorArgs": [ + "0x5C47e665Ad28228D77Af8eC6cef574a66db35EA4" + ], + "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", + "deploymentType": "create", + "factoryDeps": [], + "address": "0xB5038A9Fe45A4d97Bde18Ee90FFA97B59D90f1b7", + "txHash": "0x79ff634394f684ccec81969487885bcf396c5daef74cdcabf5a1c4f7d1cc6d04" + } + ] +} diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json index ab6c21c7..94ded27c 100644 --- a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributor.sol/TrancheVestingMerkleDistributor.json @@ -1614,8 +1614,8 @@ "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", "deploymentType": "create", "factoryDeps": [], - "address": "0x3A2e77Ac0F925fb8bCf0EE3Ed81F1f38080098C1", - "txHash": "0xf295c2c1ae7e3fc83f019cd8d6594e36afd6646f2f5f5a652ec8bf150a66f08a" + "address": "0x5C47e665Ad28228D77Af8eC6cef574a66db35EA4", + "txHash": "0xc2ac74c1f1b7dbfc62885911fdbb7648054d34dd9444367b0ccd115f423e471d" } ] } diff --git a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json index 997b9622..102a425e 100644 --- a/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json +++ b/packages/hardhat/zksync-hardhat/deployments-zk/zkSyncSepoliaTestnet/contracts/ts/claim/factory/TrancheVestingMerkleDistributorFactory.sol/TrancheVestingMerkleDistributorFactory.json @@ -232,26 +232,6 @@ "factoryDeps": [], "address": "0xB5038A9Fe45A4d97Bde18Ee90FFA97B59D90f1b7", "txHash": "0x25d9332f76f3ee755768a2f682131bf7f04f5f41bf800e4dade292023ae5a59e" - }, - { - "constructorArgs": [ - "0xc0A6eaa87d38313d48d35a5Be3df51F0d3c089D2" - ], - "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", - "deploymentType": "create", - "factoryDeps": [], - "address": "0xC8F2dff2644542308CCa56D6ed6A41d1AC2F6Aee", - "txHash": "0xbf2034e7c7e5f0ef356f945556ed6a8831c5d0997ff0bb64e3b2044cbd7d2d11" - }, - { - "constructorArgs": [ - "0x3A2e77Ac0F925fb8bCf0EE3Ed81F1f38080098C1" - ], - "salt": "0x0000000000000000000000000000000000000000000000000000000000000000", - "deploymentType": "create", - "factoryDeps": [], - "address": "0x76f5445532eA16859F8066cff317A949e8Fbe38D", - "txHash": "0xf8d46922fca70b39a4af28005135d1f8bf3ccb941d09d6f98e1f451629f7c7a1" } ] } From 4e261572fd2ded037aec8fdcc1ff9713385e1534 Mon Sep 17 00:00:00 2001 From: Jack Dishman Date: Wed, 12 Jun 2024 19:42:11 -0400 Subject: [PATCH 6/8] feat: use updated contract addresses --- packages/subgraph/config.json | 16 ++++++++-------- packages/subgraph/networks.json | 14 +++++++------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/subgraph/config.json b/packages/subgraph/config.json index b967ca1a..1d186490 100644 --- a/packages/subgraph/config.json +++ b/packages/subgraph/config.json @@ -821,26 +821,26 @@ "LowestStartBlock": 35809299, "FlatPriceSaleFactory_v_2_1": [ { - "Address": "0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083", - "BlockNumber": 35887357 + "Address": "0xe5F510E963f3b2e884122Fb6E3b21A8984282813", + "BlockNumber": 36425423 } ], "FlatPriceSale_v_2_1": [ { - "Address": "0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F", - "BlockNumber": 35887345 + "Address": "0x485B932DF4b72b5846cf11c84cFdC1E267F04137", + "BlockNumber": 36425411 } ], "ContinuousVestingMerkleDistributorFactory": [ { - "Address": "0x870C1744173498905c9a1Da624CcC9852513f90D", - "BlockNumber": 35887266 + "Address": "0x840E0299fccf0B44C99B932143Ac210D34aEbbf7", + "BlockNumber": 36427884 } ], "TrancheVestingMerkleDistributorFactory": [ { - "Address": "0xc6B19D47a336d3382f57EdD768233076a27C28c2", - "BlockNumber": 35887164 + "Address": "0x16b5450ab5185Ec377dBcB0421c35C323Ed63cdc", + "BlockNumber": 36429634 } ] }, diff --git a/packages/subgraph/networks.json b/packages/subgraph/networks.json index 9edbc334..7d2e38ab 100644 --- a/packages/subgraph/networks.json +++ b/packages/subgraph/networks.json @@ -316,25 +316,25 @@ }, "zksync": { "ContinuousVestingMerkleDistributor": { - "address": "0xfb563bAAaB145Bd393b36a2a76E92A1712F41f8C" + "address": "0x18380CD98C86301A922596e176eC9535EFE01A56" }, "ContinuousVestingMerkleDistributorFactory": { - "address": "0x870C1744173498905c9a1Da624CcC9852513f90D" + "address": "0x840E0299fccf0B44C99B932143Ac210D34aEbbf7" }, "FlatPriceSaleFactory_v_2_1": { - "address": "0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083" + "address": "0xe5F510E963f3b2e884122Fb6E3b21A8984282813" }, "FlatPriceSale_v_2_1": { - "address": "0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F" + "address": "0x485B932DF4b72b5846cf11c84cFdC1E267F04137" }, "TrancheVestingMerkleDistributor": { - "address": "0xB63DC17fA834AA961aE88b6005e507Ddb60B2c53" + "address": "0xaA90E88795cDE3b813dE653e7A48338cA4049930" }, "TrancheVestingMerkleDistributorFactory": { - "address": "0xc6B19D47a336d3382f57EdD768233076a27C28c2" + "address": "0x16b5450ab5185Ec377dBcB0421c35C323Ed63cdc" }, "GenericERC20": { - "address": "0xD6daA1F7876BAF991C4655956116472B835317dd" + "address": "0xC96D8047B0B812c10e798cB249402a15c5c0753F" } }, "zksyncTestnet": { From 660009327d2e7e26e3c367c85aa3d4fd92ab6501 Mon Sep 17 00:00:00 2001 From: ArshaanB Date: Fri, 5 Jul 2024 15:17:31 -0400 Subject: [PATCH 7/8] changes to support final deploy to zkSync --- packages/subgraph/config.json | 28 +++++----- packages/subgraph/networks.json | 18 +++---- packages/subgraph/package.json | 10 ++-- .../v3.0/continuousVestingMapping.ts | 2 +- packages/subgraph/src/lib.ts | 52 ++----------------- .../sale/v2.0/flatPriceSaleFactoryMapping.ts | 2 +- .../sale/v2.0/saleImplementationMapping.ts | 2 +- .../subgraph/src/sale/v2.0/saleMapping.ts | 2 +- packages/subgraph/src/trade/traderMapping.ts | 2 +- 9 files changed, 38 insertions(+), 80 deletions(-) diff --git a/packages/subgraph/config.json b/packages/subgraph/config.json index 1d186490..271c5521 100644 --- a/packages/subgraph/config.json +++ b/packages/subgraph/config.json @@ -818,16 +818,16 @@ }, "zksync": { "SubgraphNetwork": "zksync-era", - "LowestStartBlock": 35809299, + "LowestStartBlock": 36000000, "FlatPriceSaleFactory_v_2_1": [ { - "Address": "0xe5F510E963f3b2e884122Fb6E3b21A8984282813", + "Address": "0x1C44a48e8eD9Fd431A87f4f2AF91CFa5319978aa", "BlockNumber": 36425423 } ], "FlatPriceSale_v_2_1": [ { - "Address": "0x485B932DF4b72b5846cf11c84cFdC1E267F04137", + "Address": "0x32B0aa453d76126F7A962539F32a478c471D6E1B", "BlockNumber": 36425411 } ], @@ -844,31 +844,31 @@ } ] }, - "zkSyncTestnet": { - "SubgraphNetwork": "zksync-sepolia", - "LowestStartBlock": 35809299, + "zksyncTestnet": { + "SubgraphNetwork": "zksync-era-sepolia", + "LowestStartBlock": 2900000, "FlatPriceSaleFactory_v_2_1": [ { - "Address": "0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083", - "BlockNumber": 2690994 + "Address": "0xBb0bd6B70Bf62C90FABbF7Ec64439C35C42D3d35", + "BlockNumber": 2953584 } ], "FlatPriceSale_v_2_1": [ { - "Address": "0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F", - "BlockNumber": 2690990 + "Address": "0x60A437f560ae7D1bd063e0bd9189ee1F21c910B0", + "BlockNumber": 2953582 } ], "ContinuousVestingMerkleDistributorFactory": [ { - "Address": "0xf38756A27593CEd6b4bF3807b44a88908b3d8ccC", - "BlockNumber": 2691083 + "Address": "0x18380CD98C86301A922596e176eC9535EFE01A56", + "BlockNumber": 2953592 } ], "TrancheVestingMerkleDistributorFactory": [ { - "Address": "0x5B8a021F311BDAbE7DcA7bEf84DBF3D1FFa80846", - "BlockNumber": 2691107 + "Address": "0xaA90E88795cDE3b813dE653e7A48338cA4049930", + "BlockNumber": 2953605 } ] } diff --git a/packages/subgraph/networks.json b/packages/subgraph/networks.json index 7d2e38ab..d010c9fa 100644 --- a/packages/subgraph/networks.json +++ b/packages/subgraph/networks.json @@ -322,10 +322,10 @@ "address": "0x840E0299fccf0B44C99B932143Ac210D34aEbbf7" }, "FlatPriceSaleFactory_v_2_1": { - "address": "0xe5F510E963f3b2e884122Fb6E3b21A8984282813" + "address": "0x1C44a48e8eD9Fd431A87f4f2AF91CFa5319978aa" }, "FlatPriceSale_v_2_1": { - "address": "0x485B932DF4b72b5846cf11c84cFdC1E267F04137" + "address": "0x32B0aa453d76126F7A962539F32a478c471D6E1B" }, "TrancheVestingMerkleDistributor": { "address": "0xaA90E88795cDE3b813dE653e7A48338cA4049930" @@ -339,25 +339,25 @@ }, "zksyncTestnet": { "ContinuousVestingMerkleDistributor": { - "address": "0xd1515bB65096d67895287bC180521007bc71900F" + "address": "0x4bc1763de361D99eFA4ccc5645121B2e4F8cFf5f" }, "ContinuousVestingMerkleDistributorFactory": { - "address": "0xf38756A27593CEd6b4bF3807b44a88908b3d8ccC" + "address": "0x18380CD98C86301A922596e176eC9535EFE01A56" }, "FlatPriceSaleFactory_v_2_1": { - "address": "0xEaC172D6Fd56933F894176eE32Dd95b0a4abb083" + "address": "0xBb0bd6B70Bf62C90FABbF7Ec64439C35C42D3d35" }, "FlatPriceSale_v_2_1": { - "address": "0x3551BA6B7b3edfF8b1c82b87D1De606270Aec24F" + "address": "0x60A437f560ae7D1bd063e0bd9189ee1F21c910B0" }, "TrancheVestingMerkleDistributor": { - "address": "0x5CD85a2C91ba4420E0247c3bB7CEe1299EA150c8" + "address": "0x840E0299fccf0B44C99B932143Ac210D34aEbbf7" }, "TrancheVestingMerkleDistributorFactory": { - "address": "0x5B8a021F311BDAbE7DcA7bEf84DBF3D1FFa80846" + "address": "0xaA90E88795cDE3b813dE653e7A48338cA4049930" }, "GenericERC20": { - "address": "0xCa785532ad49f974E41171fA4Ea8E4B5381aE0bD" + "address": "0x485B932DF4b72b5846cf11c84cFdC1E267F04137" } }, "binance": { diff --git a/packages/subgraph/package.json b/packages/subgraph/package.json index da92caae..8b96e132 100644 --- a/packages/subgraph/package.json +++ b/packages/subgraph/package.json @@ -54,13 +54,13 @@ "deploy:gnosis-satsuma": "graph deploy sales-gnosis --version-label ${VERSION_LABEL} --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key ${SATSUMA_DEPLOY_KEY} --ipfs https://ipfs.satsuma.xyz", "deploy:goerli": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-goerli", "deploy:sepolia-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-sepolia-next", - "deploy:sepolia": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-sepolia", + "deploy:sepolia": "graph deploy sepolia-test-5 --version-label v0.0.1 --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key NrSFrWuc0rL3D --ipfs https://ipfs.satsuma.xyz", "deploy:base-sepolia-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-base-sepolia-next", "deploy:base-sepolia": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-base-sepolia", "deploy:base-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-base-next", "deploy:base": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-base", - "deploy:zksync-era": "graph deploy zksync-era --version-label v0.0.1-new-version --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key GET_THIS_FROM_ALCHEMY --ipfs https://ipfs.satsuma.xyz", - "deploy:zksyncTestnet": "graph deploy zksyncTestnet --version-label v0.0.1-new-version --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key GET_THIS_FROM_ALCHEMY --ipfs https://ipfs.satsuma.xyz", + "deploy:zksync-era": "graph deploy zksync-era --version-label v0.0.4 --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key NrSFrWuc0rL3D --ipfs https://ipfs.satsuma.xyz", + "deploy:zksyncTestnet": "graph deploy zksync-era-sepolia --version-label v0.0.1 --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key NrSFrWuc0rL3D --ipfs https://ipfs.satsuma.xyz", "deploy:goerli-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-goerli-next", "deploy:goerli-satsuma": "graph deploy sales-goerli --version-label ${VERSION_LABEL} --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key ${SATSUMA_DEPLOY_KEY} --ipfs https://ipfs.satsuma.xyz", "deploy:localhost": "graph deploy --node http://localhost:8020/ --ipfs http://localhost:5001 tokensoft/sales-localhost", @@ -102,7 +102,7 @@ "ship:gnosis-next": "yarn abi-copy && yarn abi-publish && yarn prepare:gnosis && yarn deploy:gnosis-next", "ship:gnosis-satsuma": "yarn abi-copy && yarn abi-publish && yarn prepare:gnosis && yarn deploy:gnosis-satsuma", "ship:goerli": "yarn abi-copy && yarn abi-publish && yarn prepare:goerli && yarn deploy:goerli", - "ship:sepolia": "yarn abi-copy && yarn abi-publish && yarn prepare:sepolia && yarn deploy:sepolia", + "ship:sepolia": "yarn abi-copy && yarn prepare:sepolia && yarn deploy:sepolia", "ship:base-sepolia": "yarn abi-copy && yarn abi-publish && yarn prepare:base-sepolia && yarn deploy:base-sepolia", "ship:base-next": "yarn abi-copy && yarn abi-publish && yarn prepare:base && yarn deploy:base-next", "ship:base": "yarn abi-copy && yarn abi-publish && yarn prepare:base && yarn deploy:base", @@ -127,6 +127,8 @@ "ship:optimism-goerli": "yarn abi-copy && yarn abi-publish && yarn prepare:optimism-goerli && yarn deploy:optimism-goerli", "ship:optimism-goerli-next": "yarn abi-copy && yarn abi-publish && yarn prepare:optimism-goerli && yarn deploy:optimism-goerli-next", "ship:optimism-goerli-satsuma": "yarn abi-copy && yarn abi-publish && yarn prepare:optimism-goerli && yarn deploy:optimism-goerli-satsuma", + "ship:zksync-era": "yarn abi-copy && yarn prepare:zksync-era && yarn deploy:zksync-era", + "ship:zksyncTestnet": "yarn abi-copy && yarn prepare:zksyncTestnet && yarn deploy:zksyncTestnet", "run-node": "cd graph-node && docker-compose up", "stop-node": "cd graph-node && docker-compose down", "clean-node": "rm -rf graph-node/data/" diff --git a/packages/subgraph/src/distributor/v3.0/continuousVestingMapping.ts b/packages/subgraph/src/distributor/v3.0/continuousVestingMapping.ts index eb421149..57205029 100644 --- a/packages/subgraph/src/distributor/v3.0/continuousVestingMapping.ts +++ b/packages/subgraph/src/distributor/v3.0/continuousVestingMapping.ts @@ -1,5 +1,5 @@ import { log } from "@graphprotocol/graph-ts"; -import { SetContinuousVesting } from '../../../generated/templates/IContinuousVesting/IContinuousVesting' +import { SetContinuousVesting } from '../../../generated/ContinuousVestingMerkleDistributorFactory/IContinuousVesting' import { ContinuousVesting } from '../../../generated/schema'; export function handleSetContinuousVesting(event: SetContinuousVesting): void { diff --git a/packages/subgraph/src/lib.ts b/packages/subgraph/src/lib.ts index ae7463d4..238bbc41 100644 --- a/packages/subgraph/src/lib.ts +++ b/packages/subgraph/src/lib.ts @@ -1,11 +1,10 @@ import { Address, ethereum, BigInt, Bytes, log, store } from "@graphprotocol/graph-ts"; import { IDistributor } from "../generated/templates/Distributor/IDistributor"; import { Distributor as DistributorTemplate, AdvancedDistributor as AdvancedDistributorTemplate, CrosschainDistributor, TrancheVesting as TrancheVestingTemplate, MerkleSet as MerkleSetTemplate } from '../generated/templates' -import { IERC20Metadata } from '../generated/Registry/IERC20Metadata' -import { ITrancheVesting } from '../generated/Registry/ITrancheVesting' -import { IContinuousVesting } from '../generated/Registry/IContinuousVesting' -import { IPriceTierVesting } from '../generated/Registry/IPriceTierVesting' -import { IMerkleSet } from '../generated/Registry/IMerkleSet' +import { IERC20Metadata } from '../generated/ContinuousVestingMerkleDistributorFactory/IERC20Metadata' +import { ITrancheVesting } from '../generated/TrancheVestingMerkleDistributorFactory/ITrancheVesting' +import { IContinuousVesting } from '../generated/ContinuousVestingMerkleDistributorFactory/IContinuousVesting' +import { IMerkleSet } from '../generated/ContinuousVestingMerkleDistributorFactory/IMerkleSet' import { Account, Adjustment, AdvancedDistributor, Claim, ContinuousVesting, DistributionRecord, Distributor, MerkleSet, PaymentMethod, RegisteredAddress, Registry, Sale, SaleImplementation, Tranche, PriceTier, TrancheVesting } from "../generated/schema"; import { AdvancedDistributor as AdvancedDistributorContract } from "../generated/templates/AdvancedDistributor/AdvancedDistributor"; @@ -269,49 +268,6 @@ export function getOrCreateTrancheVesting(distributorId: string, block: ethereum return trancheVesting } -export function getOrCreatePriceTiers(distributorId: string, block: ethereum.Block): PriceTier[] | null { - log.info('Trying to add price tier vesting info to distributor {}', [distributorId]) - const distributorAddress: Address = Address.fromString(distributorId) - const distributorContract = IPriceTierVesting.bind(distributorAddress) - - const priceTiersResult = distributorContract.try_getPriceTiers() - - if (priceTiersResult.reverted) { - log.error('Could not call distributor.getPriceTiers() on distributor {}, is it mis-registered as tranche vesting?', [distributorId]) - return null - } - - const oracleResult = distributorContract.try_getOracle() - - if (oracleResult.reverted) { - log.error('Could not call distributor.getPriceTiers() on distributor {}, is it mis-registered as tranche vesting?', [distributorId]) - return null - } - - const priceTiers: PriceTier[] = [] - - for (let i = 0; i < priceTiersResult.value.length; i++) { - const priceTier = priceTiersResult.value[i] - const tierId = `${distributorId}-priceTierVesting-${priceTier.price}` - let t = PriceTier.load(tierId) - - if (!t) { - t = new PriceTier(tierId) - t.distributor = distributorId - t.price = priceTier.price - t.oracle = oracleResult.value.toHexString() - t.vestedFraction = priceTier.vestedFraction - t.createdAt = block.timestamp - t.save() - } - - priceTiers.push(t) - } - - // TODO: handle vesting updates? - return priceTiers -} - export function getOrCreateContinuousVesting(distributorId: string, block: ethereum.Block): ContinuousVesting | null { log.info('Trying to add continuous vesting info to distributor {}', [distributorId]) const id = `${distributorId}-continuousVesting` diff --git a/packages/subgraph/src/sale/v2.0/flatPriceSaleFactoryMapping.ts b/packages/subgraph/src/sale/v2.0/flatPriceSaleFactoryMapping.ts index 67d6a327..26c231b9 100644 --- a/packages/subgraph/src/sale/v2.0/flatPriceSaleFactoryMapping.ts +++ b/packages/subgraph/src/sale/v2.0/flatPriceSaleFactoryMapping.ts @@ -1,5 +1,5 @@ import { BigInt } from "@graphprotocol/graph-ts"; -import {NewSale} from "../../../generated/FlatPriceSaleFactory/FlatPriceSaleFactory"; +import {NewSale} from "../../../generated/templates/FlatPriceSale/FlatPriceSaleFactory"; import { getOrCreateAccount, getOrCreateNativePaymentMethod } from "../../lib"; import {SaleImplementation, Sale} from "../../../generated/schema"; import { FlatPriceSale } from '../../../generated/templates' diff --git a/packages/subgraph/src/sale/v2.0/saleImplementationMapping.ts b/packages/subgraph/src/sale/v2.0/saleImplementationMapping.ts index 1cbc3e81..0e5a328d 100644 --- a/packages/subgraph/src/sale/v2.0/saleImplementationMapping.ts +++ b/packages/subgraph/src/sale/v2.0/saleImplementationMapping.ts @@ -1,7 +1,7 @@ import { ImplementationConstructor, FlatPriceSale as FlatPriceSaleContract -} from "../../../generated/FlatPriceSaleImplementation/FlatPriceSale"; +} from "../../../generated/templates/FlatPriceSale/FlatPriceSale"; import { SaleImplementation diff --git a/packages/subgraph/src/sale/v2.0/saleMapping.ts b/packages/subgraph/src/sale/v2.0/saleMapping.ts index d906a4a2..9499e11f 100644 --- a/packages/subgraph/src/sale/v2.0/saleMapping.ts +++ b/packages/subgraph/src/sale/v2.0/saleMapping.ts @@ -8,7 +8,7 @@ import { OwnershipTransferred, RegisterDistributor, FlatPriceSale as FlatPriceSaleContract -} from "../../../generated/FlatPriceSaleImplementation/FlatPriceSale"; +} from "../../../generated/templates/FlatPriceSale/FlatPriceSale"; import { SaleImplementation, diff --git a/packages/subgraph/src/trade/traderMapping.ts b/packages/subgraph/src/trade/traderMapping.ts index 2f97db7a..c1204125 100644 --- a/packages/subgraph/src/trade/traderMapping.ts +++ b/packages/subgraph/src/trade/traderMapping.ts @@ -1,7 +1,7 @@ import { Trader, Trade, CrossChainTrade } from "../../generated/schema" import { Address, BigInt, ethereum } from "@graphprotocol/graph-ts"; import { SetConfig, HashflowTradeSingleHop, HashflowTradeXChain, SetSweepRecipient } from '../../generated/templates/Trader/Trader' -import { OwnershipTransferred } from "../../generated/Registry/Registry"; +import { OwnershipTransferred } from "../../generated/templates/Trader/Trader"; import { Trader as TraderTemplate } from "../../generated/templates" /** From bf15ca4f887320f1908e93199ca0fb77fe37391b Mon Sep 17 00:00:00 2001 From: ArshaanB Date: Wed, 17 Jul 2024 22:10:08 -0400 Subject: [PATCH 8/8] xdai/gnosis prep --- packages/subgraph/config.json | 4 +-- packages/subgraph/networks.json | 2 +- packages/subgraph/package.json | 10 +++----- packages/subgraph/src/lib.ts | 44 +++++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/packages/subgraph/config.json b/packages/subgraph/config.json index 271c5521..735cf007 100644 --- a/packages/subgraph/config.json +++ b/packages/subgraph/config.json @@ -317,8 +317,8 @@ } ] }, - "gnosis": { - "SubgraphNetwork": "gnosis", + "xdai": { + "SubgraphNetwork": "xdai", "Registry" : [ { "Address": "0x9dEbe59f42Be5152B3C98c09bAA705d09253fE4D", diff --git a/packages/subgraph/networks.json b/packages/subgraph/networks.json index d010c9fa..669a9c48 100644 --- a/packages/subgraph/networks.json +++ b/packages/subgraph/networks.json @@ -155,7 +155,7 @@ "address": "0x43054cDD872976562eCc0aA7a100657b267fBea7" } }, - "gnosis": { + "xdai": { "Registry": { "address": "0x9dEbe59f42Be5152B3C98c09bAA705d09253fE4D" }, diff --git a/packages/subgraph/package.json b/packages/subgraph/package.json index 8b96e132..97ca5080 100644 --- a/packages/subgraph/package.json +++ b/packages/subgraph/package.json @@ -11,7 +11,7 @@ "prepare:bsc": "NETWORK=bsc yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:bsc-testnet": "NETWORK=bscTestnet yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:fuji": "NETWORK=fuji yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", - "prepare:gnosis": "NETWORK=gnosis yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", + "prepare:gnosis": "NETWORK=xdai yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:goerli": "NETWORK=goerli yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:sepolia": "NETWORK=sepolia yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", "prepare:base": "NETWORK=base yarn active-config && handlebars active-config.json < src/subgraph.template.yaml > subgraph.yaml", @@ -49,9 +49,7 @@ "deploy:fuji": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-fuji", "deploy:fuji-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-fuji-next", "deploy:fuji-satsuma": "graph deploy sales-fuji --version-label ${VERSION_LABEL} --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key ${SATSUMA_DEPLOY_KEY} --ipfs https://ipfs.satsuma.xyz", - "deploy:gnosis": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-gnosis", - "deploy:gnosis-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-gnosis-next", - "deploy:gnosis-satsuma": "graph deploy sales-gnosis --version-label ${VERSION_LABEL} --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key ${SATSUMA_DEPLOY_KEY} --ipfs https://ipfs.satsuma.xyz", + "deploy:gnosis": "graph deploy sales-gnosis --version-label v0.0.2 --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key NrSFrWuc0rL3D --ipfs https://ipfs.satsuma.xyz", "deploy:goerli": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-goerli", "deploy:sepolia-next": "yarn auth && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ tokensoft/sales-sepolia-next", "deploy:sepolia": "graph deploy sepolia-test-5 --version-label v0.0.1 --node https://subgraphs.alchemy.com/api/subgraphs/deploy --deploy-key NrSFrWuc0rL3D --ipfs https://ipfs.satsuma.xyz", @@ -98,9 +96,7 @@ "ship:fuji": "yarn abi-copy && yarn abi-publish && yarn prepare:fuji && yarn deploy:fuji", "ship:fuji-next": "yarn abi-copy && yarn abi-publish && yarn prepare:fuji && yarn deploy:fuji-next", "ship:fuji-satsuma": "yarn abi-copy && yarn abi-publish && yarn prepare:fuji && yarn deploy:fuji-satsuma", - "ship:gnosis": "yarn abi-copy && yarn abi-publish && yarn prepare:gnosis && yarn deploy:gnosis", - "ship:gnosis-next": "yarn abi-copy && yarn abi-publish && yarn prepare:gnosis && yarn deploy:gnosis-next", - "ship:gnosis-satsuma": "yarn abi-copy && yarn abi-publish && yarn prepare:gnosis && yarn deploy:gnosis-satsuma", + "ship:gnosis": "yarn abi-copy && yarn prepare:gnosis && yarn deploy:gnosis", "ship:goerli": "yarn abi-copy && yarn abi-publish && yarn prepare:goerli && yarn deploy:goerli", "ship:sepolia": "yarn abi-copy && yarn prepare:sepolia && yarn deploy:sepolia", "ship:base-sepolia": "yarn abi-copy && yarn abi-publish && yarn prepare:base-sepolia && yarn deploy:base-sepolia", diff --git a/packages/subgraph/src/lib.ts b/packages/subgraph/src/lib.ts index 238bbc41..84acd665 100644 --- a/packages/subgraph/src/lib.ts +++ b/packages/subgraph/src/lib.ts @@ -4,6 +4,7 @@ import { Distributor as DistributorTemplate, AdvancedDistributor as AdvancedDist import { IERC20Metadata } from '../generated/ContinuousVestingMerkleDistributorFactory/IERC20Metadata' import { ITrancheVesting } from '../generated/TrancheVestingMerkleDistributorFactory/ITrancheVesting' import { IContinuousVesting } from '../generated/ContinuousVestingMerkleDistributorFactory/IContinuousVesting' +import { IPriceTierVesting } from '../generated/Registry/IPriceTierVesting' import { IMerkleSet } from '../generated/ContinuousVestingMerkleDistributorFactory/IMerkleSet' import { Account, Adjustment, AdvancedDistributor, Claim, ContinuousVesting, DistributionRecord, Distributor, MerkleSet, PaymentMethod, RegisteredAddress, Registry, Sale, SaleImplementation, Tranche, PriceTier, TrancheVesting } from "../generated/schema"; @@ -268,6 +269,49 @@ export function getOrCreateTrancheVesting(distributorId: string, block: ethereum return trancheVesting } +export function getOrCreatePriceTiers(distributorId: string, block: ethereum.Block): PriceTier[] | null { + log.info('Trying to add price tier vesting info to distributor {}', [distributorId]) + const distributorAddress: Address = Address.fromString(distributorId) + const distributorContract = IPriceTierVesting.bind(distributorAddress) + + const priceTiersResult = distributorContract.try_getPriceTiers() + + if (priceTiersResult.reverted) { + log.error('Could not call distributor.getPriceTiers() on distributor {}, is it mis-registered as tranche vesting?', [distributorId]) + return null + } + + const oracleResult = distributorContract.try_getOracle() + + if (oracleResult.reverted) { + log.error('Could not call distributor.getPriceTiers() on distributor {}, is it mis-registered as tranche vesting?', [distributorId]) + return null + } + + const priceTiers: PriceTier[] = [] + + for (let i = 0; i < priceTiersResult.value.length; i++) { + const priceTier = priceTiersResult.value[i] + const tierId = `${distributorId}-priceTierVesting-${priceTier.price}` + let t = PriceTier.load(tierId) + + if (!t) { + t = new PriceTier(tierId) + t.distributor = distributorId + t.price = priceTier.price + t.oracle = oracleResult.value.toHexString() + t.vestedFraction = priceTier.vestedFraction + t.createdAt = block.timestamp + t.save() + } + + priceTiers.push(t) + } + + // TODO: handle vesting updates? + return priceTiers +} + export function getOrCreateContinuousVesting(distributorId: string, block: ethereum.Block): ContinuousVesting | null { log.info('Trying to add continuous vesting info to distributor {}', [distributorId]) const id = `${distributorId}-continuousVesting`