Token Arbichess ETH QUEEN
Overview ERC20
Price
$0.00 @ 0.000000 ETH
Fully Diluted Market Cap
Total Supply:
2,698.862039 QUEEN
Holders:
81 addresses
Contract:
Decimals:
18
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xC4a9A45F51e268AE8c0D8504435EC2f5cDab8825 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Share
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan.io on 2021-09-24 */ // Dependency file: @openzeppelin/contracts/token/ERC20/IERC20.sol // SPDX-License-Identifier: MIT // pragma solidity >=0.6.0 <0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // Dependency file: contracts/interfaces/ILatestPriceOracle.sol // pragma solidity >=0.6.10 <0.8.0; interface ILatestPriceOracle { function getLatestPrice() external view returns (uint256); } // Dependency file: contracts/interfaces/IFund.sol // pragma solidity >=0.6.10 <0.8.0; pragma experimental ABIEncoderV2; // import "contracts/interfaces/ILatestPriceOracle.sol"; interface IFund { /// @notice A linear transformation matrix that represents a rebalance. /// /// ``` /// [ ratioM 0 0 ] /// R = [ ratioA2M ratioAB 0 ] /// [ ratioB2M 0 ratioAB ] /// ``` /// /// Amounts of the three tranches `m`, `a` and `b` can be rebalanced by multiplying the matrix: /// /// ``` /// [ m', a', b' ] = [ m, a, b ] * R /// ``` struct Rebalance { uint256 ratioM; uint256 ratioA2M; uint256 ratioB2M; uint256 ratioAB; uint256 timestamp; } function trancheWeights() external pure returns (uint256 weightA, uint256 weightB); function tokenUnderlying() external view returns (address); function tokenM() external view returns (address); function tokenA() external view returns (address); function tokenB() external view returns (address); function underlyingDecimalMultiplier() external view returns (uint256); // function twapOracle() external view returns (ITwapOracle); function latestPriceOracle() external view returns (ILatestPriceOracle); function feeCollector() external view returns (address); function endOfDay(uint256 timestamp) external pure returns (uint256); function shareTotalSupply(uint256 tranche) external view returns (uint256); function shareBalanceOf(uint256 tranche, address account) external view returns (uint256); function allShareBalanceOf(address account) external view returns ( uint256, uint256, uint256 ); function shareBalanceVersion(address account) external view returns (uint256); function shareAllowance( uint256 tranche, address owner, address spender ) external view returns (uint256); function shareAllowanceVersion(address owner, address spender) external view returns (uint256); function getRebalanceSize() external view returns (uint256); function getRebalance(uint256 index) external view returns (Rebalance memory); function getRebalanceTimestamp(uint256 index) external view returns (uint256); function currentDay() external view returns (uint256); function fundActivityStartTime() external view returns (uint256); function exchangeActivityStartTime() external view returns (uint256); function isFundActive(uint256 timestamp) external view returns (bool); function isPrimaryMarketActive(address primaryMarket, uint256 timestamp) external view returns (bool); function isExchangeActive(uint256 timestamp) external view returns (bool); function getTotalShares() external view returns (uint256); function extrapolateNav(uint256 timestamp, uint256 price) external view returns ( uint256, uint256, uint256 ); function calculateNavB(uint256 navM, uint256 navA) external pure returns (uint256); function doRebalance( uint256 amountM, uint256 amountA, uint256 amountB, uint256 index ) external view returns ( uint256 newAmountM, uint256 newAmountA, uint256 newAmountB ); function batchRebalance( uint256 amountM, uint256 amountA, uint256 amountB, uint256 fromIndex, uint256 toIndex ) external view returns ( uint256 newAmountM, uint256 newAmountA, uint256 newAmountB ); function refreshBalance(address account, uint256 targetVersion) external; function refreshAllowance( address owner, address spender, uint256 targetVersion ) external; function mint( uint256 tranche, address account, uint256 amount ) external; function burn( uint256 tranche, address account, uint256 amount ) external; function transfer( uint256 tranche, address sender, address recipient, uint256 amount ) external; function transferFrom( uint256 tranche, address spender, address sender, address recipient, uint256 amount ) external returns (uint256 newAllowance); function increaseAllowance( uint256 tranche, address sender, address spender, uint256 addedValue ) external returns (uint256 newAllowance); function decreaseAllowance( uint256 tranche, address sender, address spender, uint256 subtractedValue ) external returns (uint256 newAllowance); function approve( uint256 tranche, address owner, address spender, uint256 amount ) external; event RebalanceTriggered( uint256 indexed index, uint256 indexed day, uint256 ratioM, uint256 ratioA2M, uint256 ratioB2M, uint256 ratioAB ); event Settled(uint256 indexed day, uint256 navM, uint256 navA, uint256 navB); event InterestRateUpdated(uint256 baseInterestRate, uint256 floatingInterestRate); event Transfer( uint256 indexed tranche, address indexed from, address indexed to, uint256 amount ); event Approval( uint256 indexed tranche, address indexed owner, address indexed spender, uint256 amount ); event BalancesRebalanced( address indexed account, uint256 version, uint256 balanceM, uint256 balanceA, uint256 balanceB ); event AllowancesRebalanced( address indexed owner, address indexed spender, uint256 version, uint256 allowanceM, uint256 allowanceA, uint256 allowanceB ); } // Root file: contracts/fund/Share.sol pragma solidity >=0.6.10 <0.8.0; // import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; // import "contracts/interfaces/IFund.sol"; contract Share is IERC20 { uint8 public constant decimals = 18; string public name; string public symbol; uint256 private immutable _tranche; IFund public fund; /** * @dev Sets the values for {name} and {symbol}. * * _tranche is immutable: it can only be set once during construction. */ constructor( string memory name_, string memory symbol_, address fund_, uint256 tranche_ ) public { name = name_; symbol = symbol_; fund = IFund(fund_); _tranche = tranche_; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() external view override returns (uint256) { return fund.shareTotalSupply(_tranche); } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) external view override returns (uint256) { return fund.shareBalanceOf(_tranche, account); } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) external override returns (bool) { fund.transfer(_tranche, msg.sender, recipient, amount); emit Transfer(msg.sender, recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) external view override returns (uint256) { return fund.shareAllowance(_tranche, owner, spender); } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) external override returns (bool) { fund.approve(_tranche, msg.sender, spender, amount); emit Approval(msg.sender, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { uint256 newAllowance = fund.transferFrom(_tranche, msg.sender, sender, recipient, amount); emit Transfer(sender, recipient, amount); emit Approval(sender, msg.sender, newAllowance); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) external returns (bool) { uint256 newAllowance = fund.increaseAllowance(_tranche, msg.sender, spender, addedValue); emit Approval(msg.sender, spender, newAllowance); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) { uint256 newAllowance = fund.decreaseAllowance( _tranche, msg.sender, spender, subtractedValue ); emit Approval(msg.sender, spender, newAllowance); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"fund_","type":"address"},{"internalType":"uint256","name":"tranche_","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":[],"name":"fund","outputs":[{"internalType":"contract IFund","name":"","type":"address"}],"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":[],"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461014757806395d89b411461015a578063a457c2d714610162578063a9059cbb14610175578063b60d428814610188578063dd62ed3e1461019d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100f757806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101b0565b6040516100ce9190610a02565b60405180910390f35b6100ea6100e53660046109a1565b61023e565b6040516100ce91906109e3565b6100ff61031c565b6040516100ce9190610a55565b6100ea61011a366004610961565b6103c2565b610127610514565b6040516100ce9190610ae7565b6100ea6101423660046109a1565b610519565b6100ff610155366004610912565b61061d565b6100c16106c0565b6100ea6101703660046109a1565b61071a565b6100ea6101833660046109a1565b610775565b610190610841565b6040516100ce91906109ee565b6100ff6101ab36600461092d565b610850565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102365780601f1061020b57610100808354040283529160200191610236565b820191906000526020600020905b81548152906001019060200180831161021957829003601f168201915b505050505081565b600254604051637907bb5d60e11b81526000916001600160a01b03169063f20f76ba90610295907f000000000000000000000000000000000000000000000000000000000000000090339088908890600401610aa3565b600060405180830381600087803b1580156102af57600080fd5b505af11580156102c3573d6000803e3d6000fd5b50505050826001600160a01b0316336001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161030a9190610a55565b60405180910390a35060015b92915050565b60025460405163491f7deb60e01b81526000916001600160a01b03169063491f7deb9061036d907f000000000000000000000000000000000000000000000000000000000000000090600401610a55565b60206040518083038186803b15801561038557600080fd5b505afa158015610399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103bd91906109cb565b905090565b600254604051630a23b9b160e01b815260009182916001600160a01b0390911690630a23b9b19061041f907f00000000000000000000000000000000000000000000000000000000000000009033908a908a908a90600401610a75565b602060405180830381600087803b15801561043957600080fd5b505af115801561044d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047191906109cb565b9050836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516104b69190610a55565b60405180910390a3336001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516105019190610a55565b60405180910390a3506001949350505050565b601281565b60025460405163d5feac7160e01b815260009182916001600160a01b039091169063d5feac7190610574907f000000000000000000000000000000000000000000000000000000000000000090339089908990600401610aa3565b602060405180830381600087803b15801561058e57600080fd5b505af11580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906109cb565b9050836001600160a01b0316336001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161060b9190610a55565b60405180910390a35060019392505050565b6002546040516339e02fdb60e21b81526000916001600160a01b03169063e780bf6c90610670907f0000000000000000000000000000000000000000000000000000000000000000908690600401610a5e565b60206040518083038186803b15801561068857600080fd5b505afa15801561069c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031691906109cb565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102365780601f1061020b57610100808354040283529160200191610236565b600254604051637d76b99160e01b815260009182916001600160a01b0390911690637d76b99190610574907f000000000000000000000000000000000000000000000000000000000000000090339089908990600401610aa3565b600254604051631b66a95360e11b81526000916001600160a01b0316906336cd52a6906107cc907f000000000000000000000000000000000000000000000000000000000000000090339088908890600401610aa3565b600060405180830381600087803b1580156107e657600080fd5b505af11580156107fa573d6000803e3d6000fd5b50505050826001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161030a9190610a55565b6002546001600160a01b031681565b600254604051626bdaa360e21b81526000916001600160a01b0316906301af6a8c906108a4907f00000000000000000000000000000000000000000000000000000000000000009087908790600401610ac8565b60206040518083038186803b1580156108bc57600080fd5b505afa1580156108d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f491906109cb565b9392505050565b80356001600160a01b038116811461031657600080fd5b600060208284031215610923578081fd5b6108f483836108fb565b6000806040838503121561093f578081fd5b61094984846108fb565b915061095884602085016108fb565b90509250929050565b600080600060608486031215610975578081fd5b833561098081610af5565b9250602084013561099081610af5565b929592945050506040919091013590565b600080604083850312156109b3578182fd5b6109bd84846108fb565b946020939093013593505050565b6000602082840312156109dc578081fd5b5051919050565b901515815260200190565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b81811015610a2e57858101830151858201604001528201610a12565b81811115610a3f5783604083870101525b50601f01601f1916929092016040019392505050565b90815260200190565b9182526001600160a01b0316602082015260400190565b9485526001600160a01b03938416602086015291831660408501529091166060830152608082015260a00190565b9384526001600160a01b03928316602085015291166040830152606082015260800190565b9283526001600160a01b03918216602084015216604082015260600190565b60ff91909116815260200190565b6001600160a01b0381168114610b0a57600080fd5b5056fea2646970667358221220b06b087c7010cddc9946b5e4967ecec3c586248411a20e78fd398076ae427e4964736f6c634300060c0033
Deployed ByteCode Sourcemap
9654:4451:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9730:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11476:228;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10329:121::-;;;:::i;:::-;;;;;;;:::i;12186:379::-;;;;;;:::i;:::-;;:::i;9686:35::-;;;:::i;:::-;;;;;;;:::i;12974:276::-;;;;;;:::i;:::-;;:::i;10513:141::-;;;;;;:::i;:::-;;:::i;9755:20::-;;;:::i;13753:349::-;;;;;;:::i;:::-;;:::i;10867:236::-;;;;;;:::i;:::-;;:::i;9825:17::-;;;:::i;:::-;;;;;;;:::i;11166:163::-;;;;;;:::i;:::-;;:::i;9730:18::-;;;;;;;;;;;;;;;-1:-1:-1;;9730:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11476:228::-;11570:4;;:51;;-1:-1:-1;;;11570:51:0;;11553:4;;-1:-1:-1;;;;;11570:4:0;;:12;;:51;;11583:8;;11593:10;;11605:7;;11614:6;;11570:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11658:7;-1:-1:-1;;;;;11637:37:0;11646:10;-1:-1:-1;;;;;11637:37:0;;11667:6;11637:37;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;11692:4:0;11476:228;;;;;:::o;10329:121::-;10411:4;;:31;;-1:-1:-1;;;10411:31:0;;10384:7;;-1:-1:-1;;;;;10411:4:0;;:21;;:31;;10433:8;;10411:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10404:38;;10329:121;:::o;12186:379::-;12360:4;;:66;;-1:-1:-1;;;12360:66:0;;12320:4;;;;-1:-1:-1;;;;;12360:4:0;;;;:17;;:66;;12378:8;;12388:10;;12400:6;;12408:9;;12419:6;;12360:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12337:89;;12459:9;-1:-1:-1;;;;;12442:35:0;12451:6;-1:-1:-1;;;;;12442:35:0;;12470:6;12442:35;;;;;;:::i;:::-;;;;;;;;12510:10;-1:-1:-1;;;;;12493:42:0;12502:6;-1:-1:-1;;;;;12493:42:0;;12522:12;12493:42;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;12553:4:0;;12186:379;-1:-1:-1;;;;12186:379:0:o;9686:35::-;9719:2;9686:35;:::o;12974:276::-;13096:4;;:65;;-1:-1:-1;;;13096:65:0;;13056:4;;;;-1:-1:-1;;;;;13096:4:0;;;;:22;;:65;;13119:8;;13129:10;;13141:7;;13150:10;;13096:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13073:88;;13198:7;-1:-1:-1;;;;;13177:43:0;13186:10;-1:-1:-1;;;;;13177:43:0;;13207:12;13177:43;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;13238:4:0;;12974:276;-1:-1:-1;;;12974:276:0:o;10513:141::-;10608:4;;:38;;-1:-1:-1;;;10608:38:0;;10581:7;;-1:-1:-1;;;;;10608:4:0;;:19;;:38;;10628:8;;10638:7;;10608:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9755:20::-;;;;;;;;;;;;;;;-1:-1:-1;;9755:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13753:349;13880:4;;:133;;-1:-1:-1;;;13880:133:0;;13840:4;;;;-1:-1:-1;;;;;13880:4:0;;;;:22;;:133;;13917:8;;13940:10;;13965:7;;13987:15;;13880:133;;;:::i;10867:236::-;10964:4;;:54;;-1:-1:-1;;;10964:54:0;;10947:4;;-1:-1:-1;;;;;10964:4:0;;:13;;:54;;10978:8;;10988:10;;11000:9;;11011:6;;10964:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11055:9;-1:-1:-1;;;;;11034:39:0;11043:10;-1:-1:-1;;;;;11034:39:0;;11066:6;11034:39;;;;;;:::i;9825:17::-;;;-1:-1:-1;;;;;9825:17:0;;:::o;11166:163::-;11276:4;;:45;;-1:-1:-1;;;11276:45:0;;11249:7;;-1:-1:-1;;;;;11276:4:0;;:19;;:45;;11296:8;;11306:5;;11313:7;;11276:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11269:52;11166:163;-1:-1:-1;;;11166:163:0:o;5:130:-1:-;72:20;;-1:-1;;;;;7162:54;;8497:35;;8487:2;;8546:1;;8536:12;420:241;;524:2;512:9;503:7;499:23;495:32;492:2;;;-1:-1;;530:12;492:2;592:53;637:7;613:22;592:53;:::i;668:366::-;;;789:2;777:9;768:7;764:23;760:32;757:2;;;-1:-1;;795:12;757:2;857:53;902:7;878:22;857:53;:::i;:::-;847:63;;965:53;1010:7;947:2;990:9;986:22;965:53;:::i;:::-;955:63;;751:283;;;;;:::o;1041:491::-;;;;1179:2;1167:9;1158:7;1154:23;1150:32;1147:2;;;-1:-1;;1185:12;1147:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1237:63;-1:-1;1337:2;1376:22;;72:20;97:33;72:20;97:33;:::i;:::-;1141:391;;1345:63;;-1:-1;;;1445:2;1484:22;;;;209:20;;1141:391::o;1539:366::-;;;1660:2;1648:9;1639:7;1635:23;1631:32;1628:2;;;-1:-1;;1666:12;1628:2;1728:53;1773:7;1749:22;1728:53;:::i;:::-;1718:63;1818:2;1857:22;;;;209:20;;-1:-1;;;1622:283::o;1912:263::-;;2027:2;2015:9;2006:7;2002:23;1998:32;1995:2;;;-1:-1;;2033:12;1995:2;-1:-1;357:13;;1989:186;-1:-1;1989:186::o;3309:210::-;7074:13;;7067:21;2516:34;;3430:2;3415:18;;3401:118::o;3526:248::-;-1:-1;;;;;7162:54;;;;2646:63;;3666:2;3651:18;;3637:137::o;3781:310::-;;3928:2;;3949:17;3942:47;2866:5;6697:12;6854:6;3928:2;3917:9;3913:18;6842:19;-1:-1;8129:101;8143:6;8140:1;8137:13;8129:101;;;8210:11;;;;;8204:18;8191:11;;;6882:14;8191:11;8184:39;8158:10;;8129:101;;;8245:6;8242:1;8239:13;8236:2;;;-1:-1;6882:14;8301:6;3917:9;8292:16;;8285:27;8236:2;-1:-1;8417:7;8401:14;-1:-1;;8397:28;3024:39;;;;6882:14;3024:39;;3899:192;-1:-1;;;3899:192::o;4098:222::-;3146:37;;;4225:2;4210:18;;4196:124::o;4327:333::-;3146:37;;;-1:-1;;;;;7162:54;4646:2;4631:18;;2402:37;4482:2;4467:18;;4453:207::o;4667:684::-;3146:37;;;-1:-1;;;;;7162:54;;;5087:2;5072:18;;2261:58;7162:54;;;5170:2;5155:18;;2402:37;7162:54;;;5253:2;5238:18;;2402:37;5336:3;5321:19;;3146:37;4914:3;4899:19;;4885:466::o;5358:572::-;3146:37;;;-1:-1;;;;;7162:54;;;5750:2;5735:18;;2261:58;7162:54;;5833:2;5818:18;;2402:37;5916:2;5901:18;;3146:37;5577:3;5562:19;;5548:382::o;5937:444::-;3146:37;;;-1:-1;;;;;7162:54;;;6284:2;6269:18;;2402:37;7162:54;6367:2;6352:18;;2402:37;6120:2;6105:18;;6091:290::o;6388:214::-;7378:4;7367:16;;;;3262:35;;6511:2;6496:18;;6482:120::o;8438:117::-;-1:-1;;;;;7162:54;;8497:35;;8487:2;;8546:1;;8536:12;8487:2;8481:74;:::o
Metadata Hash
ipfs://b06b087c7010cddc9946b5e4967ecec3c586248411a20e78fd398076ae427e49