Skip to content

Go implementation of DxChain3.0 protocol

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

DxChainNetwork/dxc

Repository files navigation

DxChain 3.0

The Ecosystem Powered by DxChain 3.0

Smart Contract Platform

While compatible with all smart contract functions on Ethereum (completely migrated to the DxChain Mainnet), we try to provide worldwide users with easy-to-use and templated development solutions to help popularize smart contracts and provide more diversified dapps.

Cross Chain

Under the premise of ensuring the absolute security of asset circulation, cross-chain circulation of assets with low handling fees, low latency and high concurrency can be completed through DxChain 3.0 on-chain transfer without any centralized platform. To achieve the circulation and exchange of tokens by connecting mainstream projects and building a global asset interactive network.

DeFi

We are committed to building a more convenient, friendly, and safer decentralized financial service platform for worldwide users to transfer crypto assets easily and transparently. In the meantime, it will also provide our ecosystem partners with appropriate and feasible financial products and services, including but not limited to mainstream DeFi applications such as DEX, loans, and liquidity mining to meet the diverse financial needs.

NFT

Currently, the Non-Fungible Token (NFT) can be used in crypto-collectibles, games and other applications. DxChain will help creators, developers, and collectors to perform NFT minting, development, and trading more conveniently and stably, providing the industry with integrative solutions.

Metaverse

As a bridge between the real world and the virtual world, Metaverse will further affect social, entertainment, finance and other aspects in the future. In this regard, DxChain will join this market in advance, conduct a forward-looking exploration regarding cross-chain identification, social entertainment, integration of crypto and tangible assets, GameFi, etc.

DxChain 3.0 Architecture

Fully Compatible with EVM

DxChain 3.0 is fully compatible with Ethereum Virtual Machine (EVM), supports the compilation and execution of smart contracts, and supports various versions of Solidity. The Ethereum Virtual Machine is a Turing-complete state machine, an engine used to execute transactions or contract code. EVM provides a secure operating environment for each contract with an independent runtime stack, which contains a maximum of 1024 elements, and each element is 256bit. Moreover, EVM supports cyclic operation instructions and the contract supports complex logic functions, enabling any complex conceived programs to run smoothly.

DPoS Consensus

The DxChain mainnet currently implements the DPoS (Delegated Proof of Stake) algorithm, which is considered an improved version of the PoS (Proof of Stake) algorithm and has the characteristics of democratization, low costs, low latency, and high concurrency. DxChain 3.0 improves the DPoS consensus algorithm by storing the staking and voting data in the built-in contract and keeps the data storage structure consistent with the state trie, allowing more efficient elections and block synchronization.

  • TPS: 500+
  • Average block interval: 3s
  • Validators: <=99
  • Delegators: <=210

The system contracts code here: consensus/dpos/systemcontract/contracts

Cross Chain

DxChain Bridge uses AWS Nitro Enclave to build a fast, safe, and low-cost cross-chain bridge between Ethereum and DxChain. The DxBridge will be composed of Nitro Enclave and a list of trusted nodes (called Warden). Nitro Enclave will be used to build an isolated execution environment to prevent any centralized interference and reduce the complex steps without sacrificing system security.

DxBridge mainly consists of two parts:

  • Nitro Enclave: AWS Trusted Execution Environment solution. By creating an isolated environment, users can use and process private keys with high security while preventing users and applications on the parent instance to views or obtaining those information.
  • A set of Wardens: third-party searchers and verifiers of transactions. Warden is mainly responsible for retrieving DxChain and Ethereum and submitting legal transactions that need to be processed to Nitro Enclave. First, Warden will look for transactions that have been successfully sent to the Ethereum wallet or transactions that have been retrieved from DxChain. There must be enough funds to pay for related expenses, including the gas fee and cross-chain fees required, otherwise, the transaction will be rejected and Warden will not retrieve these transactions. Nitro Enclave requires a certain number of Wardens to submit the same transaction at the same time, then the bridge will send the corresponding transaction on another chain and submit legal transactions by providing a private key segment.

Nitro Enclave can directly connect with Warden to obtain on-chain events and send transactions. The private keys of all addresses in the transaction are derived from the master private key generated during initialization that no other party can obtain. The master private key uses the Shamir Secret Sharing algorithm to distribute the private key segments to Warden, and uses TLS communication to verify the identity during the process. Nitro Enclave will ask Warden for private key segments via TLS connection to retrieve the master private key, and distribute new private key segments to Warden again after restart. In addition, transactions confirmed to have been processed by the bridge will be backed up locally.

Tokenomic

The native token on the DxChain is DX, an exchange unit between users, provides economic incentives for on-chain activities and is also consumed as handling fees. The total supply of DX is 100 billion, of which the ecosystem pool is 45 billion. The undistributed rewards for DxChain 2.0 will continue to be distributed in DxChain 3.0.

Users can participate in DxChain by voting DX to obtain block rewards or become a Validator to maintain the security and stability of the DxChain network. In DxChain 3.0, there is also a new token burn mechanism. If a Validator does not meet the required number of block generation in a certain epoch, all block rewards that have been generated will be burned and the Validator status will be canceled.

Governance

DxChain mainly divides business, technology, and community aspects in community governance. It is expected that major decisions and policies will be governed by community voting. The community initiates proposals, evaluates the results, and the committee monitors the execution process so that the DxChain development team and the community can realize the co-governance.

The DxChain team always firmly believes that a fair, reasonable, and transparent governance mechanism with multi-party participation can better improve the community's quality. DxChain will adhere to the following points:

  • Improve the community incentive mechanism We will continue to run DPoS mining, keep the incentive mechanism updated and innovated, provide sufficient incentives to attract more users and achieve positive feedback, aiming to guarantee the benefits of all users.

  • Community Co-governance Co-governance will be the core idea of DxChain 3.0 community governance. In order to increase the sense of ownership, community users will be advocated and guided to participate in community discussions, proposals, and voting in the design of the community governance mechanism.

  • Foundation Assistance As the initiator of DxChain ecosystem, DX Foundation will play the role of mobilizing community participation, accelerating community merging, integrating community resources, solving community problems, and promoting community governance.

Election

The validator is responsible for block generation and verification on the chain, and is an integral part of DxChain. In order to realize co-governance, the rules were firstly applied in node elections. If a user wants to participate in the DPoS and apply for a validator, the following conditions must be met:

  • Possess the technical and hardware requirements to maintain a blockchain node
  • Stake at least 40 million DX
  • The proportion allocated to voters is between 70% and 100% A proposal will be initiated on DxChain once the above conditions are met and all existing delegators can vote, the application will not get approved until at least one validator has voted.

DAO

DAO (Decentralized Autonomous Organization) involves on-chain governance. Project or community users can initiate proposals, such as adjustments to consensus algorithm and economic models, deciding whether to approve new delegators, greatly expressing our idea of co-governance and reducing the risks brought by centralized governance.

Foundation

Currently, 5% of the block reward will be allocated to the DxChain Foundation to support future development and operation, community governance, external developer contribution rewards, ecosystem construction funds, etc. (including but not limited to Dapp Development and marketing). Community governance is a process in which delegators, community members and foundations supervise each other and work together. The DxChain team will continue to improve the further governance plan in DxChain 3.0 to make governance and supervision more transparent.

Private Chain Construction Guide

Pull dxc from GitHub

git clone https://github.com/DxChainNetwork/dxc.git

Install Golang

https://golang.org/doc/install

Compile

cd /path/to/dxc		# path to the dxc project
make geth

The compiled geth executable file is under the /path/to/dxc/build/bin path.

Create new account

  1. Create data directory
mkdir -p build/bin/data	# customized data path
  1. New account
./build/bin/geth account new --datadir ./build/bin/data
echo "your-password" > build/bin/password.txt

Create genesis block

  1. Creategenesis.json under build/bin directory, and modify the alloc field to desired balance for genesis block.
  2. Replace 1c0e8eaf42ec8d4010e960313248d2af95be7d34 from extraData field with initial address (without 0x prefix).
{
  "config": {
    "chainId": 36,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "muirGlacierBlock": 0,
    "dpos": {
      "period": 6,
      "epoch": 14400
    }
  },
  "nonce": "0x0",
  "timestamp": "0x5fc58968",
  "extraData": "0x00000000000000000000000000000000000000000000000000000000000000001c0e8eaf42ec8d4010e960313248d2af95be7d340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x280de80",
  "difficulty": "0x1",
  "alloc": {
    "0x0000000000000000000000000000000000fff001": {
      "balance": "0x0",
      "code": "0x6080604052600436106103505760003560e01c8063862e63c0116101c6578063ccc46b12116100f7578063f1dc8ff811610095578063f7210f461161006f578063f7210f4614610899578063fa52c7d8146108b9578063fd61a90d14610921578063ff3fd0e31461093657600080fd5b8063f1dc8ff814610863578063f2f60d2314610551578063f6153ccd1461088357600080fd5b8063e1c30854116100d1578063e1c3085414610808578063e1e158a51461081d578063e5065dd614610839578063efd644471461084e57600080fd5b8063ccc46b1214610551578063d4c28809146107de578063d819bfef146107f357600080fd5b8063b845a41c11610164578063be040fb01161013e578063be040fb014610760578063c24dbebd14610775578063c3f5b2bd1461079c578063c7f76d9d146107b157600080fd5b8063b845a41c14610702578063b97b020114610717578063bda430781461073757600080fd5b8063970abafe116101a0578063970abafe1461068f578063a80e36bb146106ac578063b3334dc3146106bf578063b334a0cc146106d257600080fd5b8063862e63c0146106445780638a1635821461065a5780638ab7fe931461067a57600080fd5b806351ff3b9f116102a057806368d426051161023e57806374c259c61161021857806374c259c6146105e357806376671808146105f85780637c068cfc1461060d5780637f0970101461062d57600080fd5b806368d426051461059b578063698c5b52146105b05780636ae4ffae146105d057600080fd5b80635ab140d21161027a5780635ab140d2146105345780635c3fb329146105515780636285a17014610566578063632c93a01461058657600080fd5b806351ff3b9f146104e257806355eda4e8146104ff57806355ef20e61461051457600080fd5b80632177428a1161030d5780632e897c5d116102e75780632e897c5d146104585780632f051f42146104905780634dc8733f146104a55780634ebe2099146104c257600080fd5b80632177428a14610411578063239d5d881461042e5780632def66201461044357600080fd5b8063049f8269146103555780630de4f2711461037d57806312856fb11461039d57806318e0d5cf146103bd57806319c560b6146103d25780631a28894d146103f4575b600080fd5b34801561036157600080fd5b5061036a605a81565b6040519081526020015b60405180910390f35b34801561038957600080fd5b5061036a6b60ef6b1aba6f07233000000081565b3480156103a957600080fd5b5061036a6b50c783eb9b5c85f2a800000081565b3480156103c957600080fd5b5061036a603c81565b3480156103de57600080fd5b506103e761094b565b6040516103749190612518565b34801561040057600080fd5b5061036a6809cc68ff586fdb000081565b34801561041d57600080fd5b5061036a6808848c23041d40800081565b61044161043c366004612592565b6109fb565b005b34801561044f57600080fd5b50610441610dfe565b34801561046457600080fd5b50600b54610478906001600160a01b031681565b6040516001600160a01b039091168152602001610374565b34801561049c57600080fd5b5061036a600281565b3480156104b157600080fd5b5061036a680ad5d2a5845133800081565b3480156104ce57600080fd5b506104786104dd3660046125ff565b610ef3565b3480156104ee57600080fd5b5061036a680b9b94d1046284800081565b34801561050b57600080fd5b50610478600081565b34801561052057600080fd5b50600c54610478906001600160a01b031681565b34801561054057600080fd5b5061036a680529dbfa5807f5000081565b34801561055d57600080fd5b5061036a606481565b34801561057257600080fd5b50610441610581366004612618565b610f1d565b34801561059257600080fd5b5061036a60d281565b3480156105a757600080fd5b5061036a606381565b3480156105bc57600080fd5b506104416105cb366004612654565b610fe6565b6104416105de3660046125ff565b611275565b3480156105ef57600080fd5b5061036a60c881565b34801561060457600080fd5b5061036a611501565b34801561061957600080fd5b5061036a6b71175249d9818853b800000081565b34801561063957600080fd5b5061036a6203138081565b34801561065057600080fd5b5061036a610bb881565b34801561066657600080fd5b5061036a6b3077b58d5d3783919800000081565b34801561068657600080fd5b506103e7611513565b34801561069b57600080fd5b5061036a6806f3d387809bd9000081565b6104416106ba36600461266f565b611575565b6104416106cd366004612618565b61178f565b3480156106de57600080fd5b506106f26106ed366004612654565b611824565b6040519015158152602001610374565b34801561070e57600080fd5b5061036a61185c565b34801561072357600080fd5b5061036a6b409f9cbc7c4a04c22000000081565b34801561074357600080fd5b5061074d61012c81565b60405161ffff9091168152602001610374565b34801561076c57600080fd5b50610441611868565b34801561078157600080fd5b5061078a606481565b60405160ff9091168152602001610374565b3480156107a857600080fd5b5061036a607881565b3480156107bd57600080fd5b5061036a6107cc366004612654565b60026020526000908152604090205481565b3480156107ea57600080fd5b5061036a600381565b3480156107ff57600080fd5b5061078a604681565b34801561081457600080fd5b5061036a6119c4565b34801561082957600080fd5b5061036a670de0b6b3a764000081565b34801561084557600080fd5b506104416119d0565b34801561085a57600080fd5b5061036a602181565b34801561086f57600080fd5b50600d54610478906001600160a01b031681565b34801561088f57600080fd5b5061036a60095481565b3480156108a557600080fd5b506104416108b43660046126ab565b611d11565b3480156108c557600080fd5b5061090f6108d4366004612654565b60076020526000908152604090208054600182015460028301546003840154600485015460059095015460ff94851695939490921692909186565b604051610374969594939291906126dc565b34801561092d57600080fd5b506103e7611f5f565b34801561094257600080fd5b5061036a604281565b606060006109596005612008565b905060008167ffffffffffffffff8111156109765761097661272a565b60405190808252806020026020018201604052801561099f578160200160208202803683370190505b50905060005b828110156109f4576109b8600582612018565b8282815181106109ca576109ca612740565b6001600160a01b0390921660209283029190910190910152806109ec8161276c565b9150506109a5565b5092915050565b600054610100900460ff1680610a14575060005460ff16155b610a7c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff16158015610a9e576000805461ffff19166101011790555b600b80546001600160a01b03199081166001600160a01b0389811691909117909255600c805482168a8416179055600d805490911687831617905584163b15610af95760405162461bcd60e51b8152600401610a7390612787565b8234148015610b105750670de0b6b3a76400008310155b610b675760405162461bcd60e51b815260206004820152602260248201527f56616c696461746f72733a206465706f736974206f722076616c75652065727260448201526137b960f11b6064820152608401610a73565b604660ff831610801590610b7f5750606460ff831611155b610bfc5760405162461bcd60e51b815260206004820152604260248201527f56616c696461746f72733a2052617465206d757374206772656174657220746860448201527f616e204d494e5f5241544520616e64206c657373207468616e204d41585f5241606482015261544560f01b608482015260a401610a73565b6001600160a01b0384166000908152600760205260408120805460ff191660039081178255600182018690558101805491928692610c3b9084906127ca565b909155505060028101805460ff191660ff8516179055610c5c60038661202b565b508360096000828254610c6f91906127ca565b90915550506001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0388811691821790925591546000838152600260205260409081902091909155600b5490516307b1119160e51b8152600481019390935260248301879052169063f622322090604401600060405180830381600087803b158015610d1557600080fd5b505af1158015610d29573d6000803e3d6000fd5b5050600b546009546001546040516338219ad360e01b81526001600160a01b0390931694506338219ad39350610d6a92600401918252602082015260400190565b600060405180830381600087803b158015610d8457600080fd5b505af1158015610d98573d6000803e3d6000fd5b50506040805187815260ff871660208201526001600160a01b03891693507fdf2c60a3e2368ea4f98693643c6723047fdc546d9759648183e7c864404adc4c92500160405180910390a2508015610df5576000805461ff00191690555b50505050505050565b3360009081526007602052604090206003815460ff166003811115610e2557610e256126c6565b1480610e4657506002815460ff166003811115610e4457610e446126c6565b145b8015610e5f575033600090815260026020526040902054155b610e7b5760405162461bcd60e51b8152600401610a73906127e2565b610e83612040565b805460ff19166001178155610e996064436127ca565b6004820155610ea9600333612099565b50610eb560053361202b565b50600481015460405190815233907f1649c943d2264de125436d530f8818c6ec8418830e1f54a99af45853dbd6c5ce9060200160405180910390a250565b60018181548110610f0357600080fd5b6000918252602090912001546001600160a01b0316905081565b600d546001600160a01b03163314610f475760405162461bcd60e51b8152600401610a7390612819565b6001600160a01b03821660009081526007602052604081206003018054839290610f72908490612862565b925050819055508060096000828254610f8b9190612862565b9091555050604051339082156108fc029083906000818181858888f19350505050158015610fbd573d6000803e3d6000fd5b506001600160a01b0382166000908152600860205260409020610fe09084612099565b50505050565b600b546001600160a01b031633146110575760405162461bcd60e51b815260206004820152602e60248201527f56616c696461746f72733a206e6f742053797374656d5265776172647320636f60448201526d6e7472616374206164647265737360901b6064820152608401610a73565b6001600160a01b03811660009081526007602052604090206003815460ff166003811115611087576110876126c6565b146110a45760405162461bcd60e51b8152600401610a7390612879565b805460ff1916600290811782556001600160a01b038316600090815260209190915260408120546110d790600190612862565b9050805b6001805483916110ea91612862565b6110f49190612862565b8110156111f0576000600161110984826127ca565b8154811061111957611119612740565b60009182526020808320909101546001600160a01b0316808352600290915260409091205490915061114c600182612862565b6001600160a01b038316600090815260026020526040902055600161117185826127ca565b8154811061118157611181612740565b600091825260209091200154600180546001600160a01b0390921691869081106111ad576111ad612740565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550505080806111e89061276c565b9150506110db565b506001805480611202576112026128bb565b600082815260209020810160001990810180546001600160a01b031916905501905561122f600384612099565b5061123b60058461202b565b506040516001600160a01b038416907fdef9bb3d1cd58d47c913395fd10e42765959c09ef950f0a9e562438993d6119690600090a2505050565b60033360009081526007602052604090205460ff16600381111561129b5761129b6126c6565b1480156112b5575033600090815260026020526040902054155b6112d15760405162461bcd60e51b8152600401610a73906127e2565b336000908152600760205260409020600181015482106113db5760018101546112fa9083612862565b3410156113495760405162461bcd60e51b815260206004820152601b60248201527f56616c696461746f72733a20696c6c6567616c206465706f73697400000000006044820152606401610a73565b34816001015461135991906127ca565b6001820155600381015461136e9034906127ca565b600382015560018101546113829083612862565b6009600082825461139391906127ca565b9091555050600181015433906108fc906113ad9085612862565b6040518115909202916000818181858888f193505050501580156113d5573d6000803e3d6000fd5b506114ba565b670de0b6b3a76400008210156114335760405162461bcd60e51b815260206004820152601b60248201527f56616c696461746f72733a20696c6c6567616c206465706f73697400000000006044820152606401610a73565b60008282600101546114459190612862565b604051909150339082156108fc029083906000818181858888f19350505050158015611475573d6000803e3d6000fd5b5060018201839055600382015461148d908290612862565b600383015560018201546114a2908490612862565b600960008282546114b39190612862565b9091555050505b6114c2612040565b600181015460405190815233907f866a1a909f672cd4c05c74ae5c4cfabad73dd93a925505a7410bbcea268954fc906020015b60405180910390a25050565b600061150e60c8436128e7565b905090565b6060600180548060200260200160405190810160405280929190818152602001828054801561156b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161154d575b5050505050905090565b600c546001600160a01b031633146115e25760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f72733a206e6f742050726f706f73616c7320636f6e7472616044820152696374206164647265737360b01b6064820152608401610a73565b6001600160a01b0383163b1561160a5760405162461bcd60e51b8152600401610a7390612787565b8134146116695760405162461bcd60e51b815260206004820152602760248201527f56616c696461746f72733a206465706f736974206e6f7420657175616c206d73604482015266672e76616c756560c81b6064820152608401610a73565b6001600160a01b038316600090815260076020526040812090815460ff166003811115611698576116986126c6565b14806116b957506002815460ff1660038111156116b7576116b76126c6565b145b6116d55760405162461bcd60e51b8152600401610a7390612879565b805460ff19166003908117825560018201849055810180548491906000906116fe9084906127ca565b909155505060028101805460ff191660ff841617905561171f60038561202b565b5061172b600585612099565b50826009600082825461173e91906127ca565b90915550506040805184815260ff841660208201526001600160a01b038616917fdf2c60a3e2368ea4f98693643c6723047fdc546d9759648183e7c864404adc4c910160405180910390a250505050565b600d546001600160a01b031633146117b95760405162461bcd60e51b8152600401610a7390612819565b6001600160a01b038216600090815260076020526040812060030180548392906117e49084906127ca565b9250508190555080600960008282546117fd91906127ca565b90915550506001600160a01b0382166000908152600860205260409020610fe0908461202b565b600060036001600160a01b03831660009081526007602052604090205460ff166003811115611855576118556126c6565b1492915050565b600061150e6005612008565b336000908152600760205260409020600481015443116118ca5760405162461bcd60e51b815260206004820181905260248201527f56616c696461746f72733a20696c6c6567616c2072656465656d20626c6f636b6044820152606401610a73565b6001815460ff1660038111156118e2576118e26126c6565b1480156118fc575033600090815260026020526040902054155b6119185760405162461bcd60e51b8152600401610a73906127e2565b611920612040565b805460ff191681556001810154600382018054600090611941908490612862565b9091555050600060018201819055600980548290611960908290612862565b90915550506001810154604051339180156108fc02916000818181858888f19350505050158015611995573d6000803e3d6000fd5b5060405133907fd785cba84710e875915020ccf3554431d530e171f5ad45472751a493e38cac2890600090a250565b600061150e6003612008565b3a15611a1e5760405162461bcd60e51b815260206004820152601760248201527f50726f68696269742065787465726e616c2063616c6c730000000000000000006044820152606401610a73565b334114611a605760405162461bcd60e51b815260206004820152601060248201526f36b9b39739b2b73232b91032b93937b960811b6044820152606401610a73565b6000611a6a6120ae565b905060005b600154811015611ac7576002600060018381548110611a9057611a90612740565b60009182526020808320909101546001600160a01b0316835282019290925260400181205580611abf8161276c565b915050611a6f565b50611ad4600160006124e2565b6000611ade6120f6565b60408051848152602081018390529192507fbc1883e915e2ca5942c3e16d4021ea2f057632fb81ac1d3347305341d9fd4d1b910160405180910390a160005b82811015611ca25781611b2f57611ca2565b6000611b3b83836121ba565b905060005b611b4a6003612008565b811015611c8d576000611b5e600383612018565b6001600160a01b0381166000908152600a60209081526040808320546002909252909120549192509015611b93575050611c7b565b808411611c6c576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038516908117909155905460009182526002602052604090912055611bfd8187612862565b600b546040516307b1119160e51b81526001600160a01b0385811660048301526024820185905292985091169063f622322090604401600060405180830381600087803b158015611c4d57600080fd5b505af1158015611c61573d6000803e3d6000fd5b505050505050611c8d565b611c768185612862565b935050505b80611c858161276c565b915050611b40565b50508080611c9a9061276c565b915050611b1d565b50600b546009546001546040516338219ad360e01b8152600481019290925260248201526001600160a01b03909116906338219ad390604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050505050565b60033360009081526007602052604090205460ff166003811115611d3757611d376126c6565b148015611d51575033600090815260026020526040902054155b611d6d5760405162461bcd60e51b8152600401610a73906127e2565b33600090815260076020526040902060058101544311611dda5760405162461bcd60e51b815260206004820152602260248201527f56616c696461746f72733a20696c6c6567616c20726174652073657420626c6f604482015261636b60f01b6064820152608401610a73565b604660ff831610801590611df857506002810154606460ff90911611155b611e505760405162461bcd60e51b8152602060048201526024808201527f56616c696461746f72733a20696c6c6567616c20416c6c6f636174696f6e20726044820152636174696f60e01b6064820152608401610a73565b600281015460ff80841691161115611eb457600281015461012c9060ff16611e7884826128fb565b611e879060ff1661271061291e565b611e9191906128e7565b1115611eaf5760405162461bcd60e51b8152600401610a739061293d565b611f01565b600281015461012c9060ff16611eca81856128fb565b611ed99060ff1661271061291e565b611ee391906128e7565b1115611f015760405162461bcd60e51b8152600401610a739061293d565b611f09612040565b60028101805460ff191660ff8416179055611f256064436127ca565b600582015560405160ff8316815233907f74b5260e2bacea827a2bbe685910d5dff7cd1446c91265816ed7541ba2cc620d906020016114f5565b60606000611f6d6003612008565b905060008167ffffffffffffffff811115611f8a57611f8a61272a565b604051908082528060200260200182016040528015611fb3578160200160208202803683370190505b50905060005b828110156109f457611fcc600382612018565b828281518110611fde57611fde612740565b6001600160a01b0390921660209283029190910190910152806120008161276c565b915050611fb9565b6000612012825490565b92915050565b60006120248383612206565b9392505050565b6000612024836001600160a01b038416612230565b600b5460405163244a553960e01b81523360048201526001600160a01b039091169063244a553990602401600060405180830381600087803b15801561208557600080fd5b505af1158015610fe0573d6000803e3d6000fd5b6000612024836001600160a01b03841661227f565b6000806120b9612372565b9050603c8110156120cc57600291505090565b605a8110156120dd57602191505090565b60788110156120ee57604291505090565b606391505090565b6000805b6121046003612008565b81101561214857600a600061211a600384612018565b6001600160a01b031681526020810191909152604001600090812055806121408161276c565b9150506120fa565b5060005b6121566003612008565b8110156121b657600061216a600383612018565b6001600160a01b038116600090815260076020818152604080842060030154600a83529320839055529091506121a090846127ca565b92505080806121ae9061276c565b91505061214c565b5090565b6000806121c78343612862565b6040805191406020830152810184905260600160408051601f19818403018152919052805160209091012090506121fe848261297f565b949350505050565b600082600001828154811061221d5761221d612740565b9060005260206000200154905092915050565b600081815260018301602052604081205461227757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155612012565b506000612012565b600081815260018301602052604081205480156123685760006122a3600183612862565b85549091506000906122b790600190612862565b905081811461231c5760008660000182815481106122d7576122d7612740565b90600052602060002001549050808760000184815481106122fa576122fa612740565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061232d5761232d6128bb565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612012565b6000915050612012565b600080600b60009054906101000a90046001600160a01b03166001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ec9190612993565b90508060011415612407576124016003612008565b91505090565b6000600f808310156124165750815b60015b818110156124c457600b546000906001600160a01b031663c6b61e4c61243f8488612862565b6040518263ffffffff1660e01b815260040161245d91815260200190565b606060405180830381865afa15801561247a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249e91906129ac565b9250505080846124ae91906127ca565b93505080806124bc9061276c565b915050612419565b506124d0600182612862565b6124da90836128e7565b935050505090565b50805460008255906000526020600020908101906125009190612503565b50565b5b808211156121b65760008155600101612504565b6020808252825182820181905260009190848201906040850190845b818110156125595783516001600160a01b031683529284019291840191600101612534565b50909695505050505050565b80356001600160a01b038116811461257c57600080fd5b919050565b803560ff8116811461257c57600080fd5b60008060008060008060c087890312156125ab57600080fd5b6125b487612565565b95506125c260208801612565565b94506125d060408801612565565b93506125de60608801612565565b9250608087013591506125f360a08801612581565b90509295509295509295565b60006020828403121561261157600080fd5b5035919050565b60008060006060848603121561262d57600080fd5b61263684612565565b925061264460208501612565565b9150604084013590509250925092565b60006020828403121561266657600080fd5b61202482612565565b60008060006060848603121561268457600080fd5b61268d84612565565b9250602084013591506126a260408501612581565b90509250925092565b6000602082840312156126bd57600080fd5b61202482612581565b634e487b7160e01b600052602160045260246000fd5b60c08101600488106126fe57634e487b7160e01b600052602160045260246000fd5b968152602081019590955260ff9390931660408501526060840191909152608083015260a09091015290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561278057612780612756565b5060010190565b60208082526023908201527f56616c696461746f72733a2076616c696461746f7220616464726573732065726040820152623937b960e91b606082015260800190565b600082198211156127dd576127dd612756565b500190565b6020808252601e908201527f56616c696461746f72733a20696c6c6567616c206d73672e73656e6465720000604082015260600190565b60208082526029908201527f56616c696461746f72733a206e6f74204e6f6465566f746520636f6e7472616360408201526874206164647265737360b81b606082015260800190565b60008282101561287457612874612756565b500390565b60208082526022908201527f56616c696461746f72733a2076616c696461746f72207374617475732065727260408201526137b960f11b606082015260800190565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826128f6576128f66128d1565b500490565b600060ff821660ff84168082101561291557612915612756565b90039392505050565b600081600019048311821515161561293857612938612756565b500290565b60208082526022908201527f56616c696461746f72733a20696c6c6567616c2072617465206f66206368616e604082015261676560f01b606082015260800190565b60008261298e5761298e6128d1565b500690565b6000602082840312156129a557600080fd5b5051919050565b6000806000606084860312156129c157600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212206f41a67574902a063b169715116db0695399fbb87f2e9d5ee8e1eb914b7e911d64736f6c634300080b0033"
    },
    "0x0000000000000000000000000000000000fff002": {
      "balance": "0x0",
      "code": "0x60806040526004361061027d5760003560e01c80638bac2ca41161014f578063ca1e7819116100c1578063dc0285d61161007a578063dc0285d61461073d578063e1e158a514610750578063e722ec2e1461076c578063efd644471461078c578063f2f60d2314610421578063ff3fd0e3146107a157600080fd5b8063ca1e7819146106be578063ccc46b1214610421578063d4c28809146106de578063d6b69942146106f3578063d819bfef14610713578063da35c6641461072857600080fd5b8063bda4307811610113578063bda43078146105f9578063c0a93d5914610622578063c24dbebd1461064f578063c3f5b2bd14610676578063c4d66de81461068b578063c9f04eed146106ab57600080fd5b80638bac2ca41461052d5780638e23a2f51461054d5780638e391b8b14610586578063970abafe146105bc578063b97b0201146105d957600080fd5b806355eda4e8116101f357806376671808116101ac57806376671808146104755780637c068cfc1461048a5780637f097010146104aa578063862e63c0146104c15780638760c693146104d75780638a1635821461050d57600080fd5b806355eda4e8146103d75780635ab140d2146104045780635c3fb32914610421578063632c93a01461043657806368d426051461044b57806374c259c61461046057600080fd5b80632177428a116102455780632177428a1461031c5780632f051f4214610339578063399cddf51461034e578063471fe0241461037b5780634dc8733f1461039d57806351ff3b9f146103ba57600080fd5b8063049f8269146102825780630de4f271146102aa57806312856fb1146102ca57806318e0d5cf146102ea5780631a28894d146102ff575b600080fd5b34801561028e57600080fd5b50610297605a81565b6040519081526020015b60405180910390f35b3480156102b657600080fd5b506102976b60ef6b1aba6f07233000000081565b3480156102d657600080fd5b506102976b50c783eb9b5c85f2a800000081565b3480156102f657600080fd5b50610297603c81565b34801561030b57600080fd5b506102976809cc68ff586fdb000081565b34801561032857600080fd5b506102976808848c23041d40800081565b34801561034557600080fd5b50610297600281565b34801561035a57600080fd5b5061036e610369366004612529565b6107b6565b6040516102a1919061255c565b34801561038757600080fd5b5061039b6103963660046125c2565b61098b565b005b3480156103a957600080fd5b50610297680ad5d2a5845133800081565b3480156103c657600080fd5b50610297680b9b94d1046284800081565b3480156103e357600080fd5b506103ec600081565b6040516001600160a01b0390911681526020016102a1565b34801561041057600080fd5b50610297680529dbfa5807f5000081565b34801561042d57600080fd5b50610297606481565b34801561044257600080fd5b5061029760d281565b34801561045757600080fd5b50610297606381565b34801561046c57600080fd5b5061029760c881565b34801561048157600080fd5b50610297610b14565b34801561049657600080fd5b506102976b71175249d9818853b800000081565b3480156104b657600080fd5b506102976203138081565b3480156104cd57600080fd5b50610297610bb881565b3480156104e357600080fd5b506104f76104f23660046125c2565b610b26565b6040516102a19a99989796959493929190612673565b34801561051957600080fd5b506102976b3077b58d5d3783919800000081565b34801561053957600080fd5b5061039b6105483660046125c2565b610c25565b34801561055957600080fd5b5061056d6105683660046126fb565b610f5a565b6040516001600160e01b031990911681526020016102a1565b34801561059257600080fd5b506102976105a1366004612725565b6001600160a01b031660009081526002602052604090205490565b3480156105c857600080fd5b506102976806f3d387809bd9000081565b3480156105e557600080fd5b506102976b409f9cbc7c4a04c22000000081565b34801561060557600080fd5b5061060f61012c81565b60405161ffff90911681526020016102a1565b34801561062e57600080fd5b5061064261063d366004612740565b610fa0565b6040516102a19190612762565b34801561065b57600080fd5b50610664606481565b60405160ff90911681526020016102a1565b34801561068257600080fd5b50610297607881565b34801561069757600080fd5b5061039b6106a6366004612725565b611265565b61039b6106b936600461291f565b611334565b3480156106ca57600080fd5b506005546103ec906001600160a01b031681565b3480156106ea57600080fd5b50610297600381565b3480156106ff57600080fd5b5061064261070e366004612529565b61170a565b34801561071f57600080fd5b50610664604681565b34801561073457600080fd5b50610297611a5d565b61039b61074b366004612987565b611a69565b34801561075c57600080fd5b50610297670de0b6b3a764000081565b34801561077857600080fd5b5061036e610787366004612740565b61225c565b34801561079857600080fd5b50610297602181565b3480156107ad57600080fd5b50610297604281565b60606000831180156107c85750600082115b6107ed5760405162461bcd60e51b81526004016107e4906129eb565b60405180910390fd5b6001600160a01b03841660009081526002602090815260408083208054825181850281018501909352808352919290919083018282801561087a57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161083c5790505b505050505090506000836001866108919190612a38565b61089b9190612a4f565b905080825110156108af57600093506108ce565b60008183516108be9190612a38565b9050848110156108cc578094505b505b60008467ffffffffffffffff8111156108e9576108e961287c565b604051908082528060200260200182016040528015610912578160200160208202803683370190505b50905060005b85811015610980578361092b8483612a6e565b8151811061093b5761093b612a86565b602002602001015182828151811061095557610955612a86565b6001600160e01b0319909216602092830291909101909101528061097881612a9c565b915050610918565b509695505050505050565b6001600160e01b0319811660009081526001602052604090206004015481906109b8906203138090612a6e565b4311156109d75760405162461bcd60e51b81526004016107e490612ab7565b6001600160e01b03198216600090815260016020526040902060040154610a105760405162461bcd60e51b81526004016107e490612aee565b6001600160e01b0319821660009081526001602052604081206007015460ff166002811115610a4157610a416125dd565b14610a5e5760405162461bcd60e51b81526004016107e490612b25565b6001600160e01b0319821660009081526001602081905260408083204360068201559091015490513392839280156108fc02929091818181858888f19350505050158015610ab0573d6000803e3d6000fd5b506001600160e01b03198316600081815260016020908152604091829020600701805460ff1916600217905590514381523392917fc8686b4fe64d9284b67780925eb9f454e289fa9fe15f7ae92c4307720b781444910160405180910390a3505050565b6000610b2160c843612b76565b905090565b6001602081905260009182526040909120805491810154600282015460038301805460e086901b9564010000000081046001600160a01b031695600160c01b90910460ff908116959416929091610b7c90612b98565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba890612b98565b8015610bf55780601f10610bca57610100808354040283529160200191610bf5565b820191906000526020600020905b815481529060010190602001808311610bd857829003601f168201915b50505050600483015460058401546006850154600790950154939491936001600160a01b03909116925060ff168a565b600554604051632ccd283360e21b81523360048201526001600160a01b039091169063b334a0cc90602401602060405180830381865afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c919190612bd3565b80610d105750600560009054906101000a90046001600160a01b03166001600160a01b031663e1c308546040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0e9190612bf5565b155b610d6c5760405162461bcd60e51b815260206004820152602760248201527f50726f706f73616c733a206d73672073656e646572206d7573742062652076616044820152663634b230ba37b960c91b60648201526084016107e4565b6001600160e01b031981166000908152600160205260409020600401548190610d99906203138090612a6e565b431115610db85760405162461bcd60e51b81526004016107e490612ab7565b6001600160e01b03198216600090815260016020526040902060040154610df15760405162461bcd60e51b81526004016107e490612aee565b6001600160e01b0319821660009081526001602052604081206007015460ff166002811115610e2257610e226125dd565b14610e3f5760405162461bcd60e51b81526004016107e490612b25565b6001600160e01b03198216600090815260016020819052604091829020436006820155600580820180546001600160a01b0319163317905554918101548154600290920154935163a80e36bb60e01b81526001600160a01b03640100000000909304831660048201526024810182905260ff909416604485015291169163a80e36bb91906064016000604051808303818588803b158015610edf57600080fd5b505af1158015610ef3573d6000803e3d6000fd5b505050506001600160e01b03198316600081815260016020818152604092839020600701805460ff191690921790915590514381523393507fd4f4649acc636af18551ee1b70ea501f9e26af2c911ca1d6e7207b39ca97e0fa910160405180910390a35050565b60026020528160005260406000208181548110610f7657600080fd5b9060005260206000209060089182820401919006600402915091509054906101000a900460e01b81565b6060600083118015610fb25750600082115b610fce5760405162461bcd60e51b81526004016107e4906129eb565b600082610fdc600186612a38565b610fe69190612a4f565b905080610ff36003612381565b10156110025760009250611029565b60008161100f6003612381565b6110199190612a38565b905083811015611027578093505b505b60008367ffffffffffffffff8111156110445761104461287c565b60405190808252806020026020018201604052801561107d57816020015b61106a612423565b8152602001906001900390816110625790505b50905060005b8481101561125a57600160006110a461109c8685612a6e565b60039061238b565b6001600160e01b031990811682526020808301939093526040918201600020825161014081018452815460e081901b909316815264010000000083046001600160a01b03169481019490945291830190600160c01b900460ff16600181111561110f5761110f6125dd565b6001811115611120576111206125dd565b815260018201546020820152600282015460ff16604082015260038201805460609092019161114e90612b98565b80601f016020809104026020016040519081016040528092919081815260200182805461117a90612b98565b80156111c75780601f1061119c576101008083540402835291602001916111c7565b820191906000526020600020905b8154815290600101906020018083116111aa57829003601f168201915b50505091835250506004820154602082015260058201546001600160a01b0316604082015260068201546060820152600782015460809091019060ff166002811115611215576112156125dd565b6002811115611226576112266125dd565b8152505082828151811061123c5761123c612a86565b6020026020010181905250808061125290612a9c565b915050611083565b509150505b92915050565b600054610100900460ff168061127e575060005460ff16155b6112e15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107e4565b600054610100900460ff16158015611303576000805461ffff19166101011790555b600580546001600160a01b0319166001600160a01b0384161790558015611330576000805461ff00191690555b5050565b6001600160e01b031984166000908152600160205260409020600401548490611361906203138090612a6e565b4311156113805760405162461bcd60e51b81526004016107e490612ab7565b6001600160e01b031985166000908152600160205260409020600401546113b95760405162461bcd60e51b81526004016107e490612aee565b6001600160e01b0319851660009081526001602052604081206007015460ff1660028111156113ea576113ea6125dd565b146114075760405162461bcd60e51b81526004016107e490612b25565b610bb88251111561145a5760405162461bcd60e51b815260206004820152601e60248201527f50726f706f73616c733a2064657461696c7320697320746f6f206c6f6e67000060448201526064016107e4565b670de0b6b3a76400008310156114cb5760405162461bcd60e51b815260206004820152603060248201527f50726f706f73616c733a206465706f736974206d75737420677265617465722060448201526f1d1a185b8813525397d1115413d4d25560821b60648201526084016107e4565b604660ff8516108015906114e35750606460ff851611155b61155f5760405162461bcd60e51b815260206004820152604160248201527f50726f706f73616c733a2072617465206d75737420677265617465722074686160448201527f6e204d494e5f5241544520616e64206c657373207468616e204d41585f5241546064820152604560f81b608482015260a4016107e4565b6001600160e01b0319851660009081526001602081905260409091200154838111156115c35733806108fc6115948785612a38565b6040518115909202916000818181858888f193505050501580156115bc573d6000803e3d6000fd5b505061165f565b8381101561162857346115d68286612a38565b146116235760405162461bcd60e51b815260206004820152601d60248201527f50726f706f73616c733a206d73672076616c7565206e6f74207472756500000060448201526064016107e4565b61165f565b341561165f57604051339081903480156108fc02916000818181858888f1935050505015801561165c573d6000803e3d6000fd5b50505b6001600160e01b03198616600090815260016020818152604090922090810186905560028101805460ff191660ff891617905543600682015584516116ac92600390920191860190612474565b50604080514381526020810186905260ff87169181019190915233906001600160e01b03198816907f0d7d10ddc5f8757b0281cb5bb58c59f7cbefe0527901fcf0ed03878e1859c76e906060015b60405180910390a3505050505050565b606060008311801561171c5750600082115b6117385760405162461bcd60e51b81526004016107e4906129eb565b6001600160a01b0384166000908152600260209081526040808320805482518185028101850190935280835291929091908301828280156117c557602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116117875790505b505050505090506000836001866117dc9190612a38565b6117e69190612a4f565b905080825110156117fa5760009350611819565b60008183516118099190612a38565b905084811015611817578094505b505b60008467ffffffffffffffff8111156118345761183461287c565b60405190808252806020026020018201604052801561186d57816020015b61185a612423565b8152602001906001900390816118525790505b50905060005b8581101561098057600160008561188a8685612a6e565b8151811061189a5761189a612a86565b6020908102919091018101516001600160e01b03199081168352828201939093526040918201600020825161014081018452815460e081901b909516815264010000000085046001600160a01b03169281019290925290929091830190600160c01b900460ff166001811115611912576119126125dd565b6001811115611923576119236125dd565b815260018201546020820152600282015460ff16604082015260038201805460609092019161195190612b98565b80601f016020809104026020016040519081016040528092919081815260200182805461197d90612b98565b80156119ca5780601f1061199f576101008083540402835291602001916119ca565b820191906000526020600020905b8154815290600101906020018083116119ad57829003601f168201915b50505091835250506004820154602082015260058201546001600160a01b0316604082015260068201546060820152600782015460809091019060ff166002811115611a1857611a186125dd565b6002811115611a2957611a296125dd565b81525050828281518110611a3f57611a3f612a86565b60200260200101819052508080611a5590612a9c565b915050611873565b6000610b216003612381565b60055460408051633870c21560e21b8152905160d2926001600160a01b03169163e1c308549160048083019260209291908290030181865afa158015611ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad79190612bf5565b10611b5c5760405162461bcd60e51b815260206004820152604960248201527f50726f706f73616c733a206c656e677468206f66207468652076616c6964617460448201527f6f72206d757374206265206c657373207468616e204d41585f56414c4944415460648201526813d494d7d0d3d5539560ba1b608482015260a4016107e4565b600554604051632ccd283360e21b81523360048201526001600160a01b039091169063b334a0cc90602401602060405180830381865afa158015611ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc89190612bd3565b15611c2c5760405162461bcd60e51b815260206004820152602e60248201527f50726f706f73616c733a20546865206d73672e73656e6465722063616e206e6f60448201526d3a103132903b30b634b230ba37b960911b60648201526084016107e4565b333b15611c995760405162461bcd60e51b815260206004820152603560248201527f50726f706f73616c733a20546865206d73672e73656e6465722063616e206e6f6044820152747420626520636f6e7472616374206164647265737360581b60648201526084016107e4565b610bb881511115611cec5760405162461bcd60e51b815260206004820152601e60248201527f50726f706f73616c733a2044657461696c7320697320746f6f206c6f6e67000060448201526064016107e4565b670de0b6b3a7640000341015611d5d5760405162461bcd60e51b815260206004820152603060248201527f50726f706f73616c733a204465706f736974206d75737420677265617465722060448201526f1d1a185b8813525397d1115413d4d25560821b60648201526084016107e4565b604660ff831610801590611d755750606460ff831611155b611df15760405162461bcd60e51b815260206004820152604160248201527f50726f706f73616c733a2052617465206d75737420677265617465722074686160448201527f6e204d494e5f5241544520616e64206c657373207468616e204d41585f5241546064820152604560f81b608482015260a4016107e4565b33600090815260026020908152604080832080548251818502810185019093528083529192909190830182828015611e7557602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411611e375790505b50505050509050600081511115611f6b5760008160018351611e979190612a38565b81518110611ea757611ea7612a86565b6020026020010151905060006002811115611ec457611ec46125dd565b6001600160e01b0319821660009081526001602052604090206007015460ff166002811115611ef557611ef56125dd565b1415611f695760405162461bcd60e51b815260206004820152603f60248201527f50726f706f73616c733a20546865206d73672e73656e6465722773206c61746560448201527f73742070726f706f73616c206973207374696c6c20696e2070656e64696e670060648201526084016107e4565b505b60003334858543604051602001611f86959493929190612c0e565b60408051601f1981840301815291815281516020928301206001600160e01b0319811660009081526001909352912060040154909150156120145760405162461bcd60e51b815260206004820152602260248201527f50726f706f73616c733a2050726f706f73616c20616c72656164792065786973604482015261747360f01b60648201526084016107e4565b61201c612423565b3460608201526001600160e01b03198216815260a081018490524360c082015233602082015260408101866001811115612058576120586125dd565b9081600181111561206b5761206b6125dd565b905250600061012082018190525060ff851660808201526001600160e01b0319821660009081526001602081815260409283902084518154928601516001600160a01b0316640100000000026001600160c01b031990931660e09190911c179190911780825592840151849391929091839160ff60c01b1990911690600160c01b9084908111156120fe576120fe6125dd565b021790555060608201516001820155608082015160028201805460ff191660ff90921691909117905560a08201518051612142916003840191602090910190612474565b5060c0820151600482015560e08201516005820180546001600160a01b0319166001600160a01b03909216919091179055610100820151600682015561012082015160078201805460ff191660018360028111156121a2576121a26125dd565b0217905550503360009081526002602090815260408220805460018101825590835291206008820401805463ffffffff60079093166004026101000a8381021990911660e087901c9190910217905561220b91506003906001600160e01b031985169061239e16565b506040805143815234602082015260ff87169181019190915233906001600160e01b03198416907f9f461862e3b06332dfeec62f4f1e200b61c86358b4dd211c6298536753818600906060016116fa565b606060008311801561226e5750600082115b61228a5760405162461bcd60e51b81526004016107e4906129eb565b600082612298600186612a38565b6122a29190612a4f565b9050806122af6003612381565b10156122be57600092506122e5565b6000816122cb6003612381565b6122d59190612a38565b9050838110156122e3578093505b505b60008367ffffffffffffffff8111156123005761230061287c565b604051908082528060200260200182016040528015612329578160200160208202803683370190505b50905060005b8481101561125a5761234461109c8483612a6e565b82828151811061235657612356612a86565b6001600160e01b0319909216602092830291909101909101528061237981612a9c565b91505061232f565b600061125f825490565b600061239783836123aa565b9392505050565b600061239783836123d4565b60008260000182815481106123c1576123c1612a86565b9060005260206000200154905092915050565b600081815260018301602052604081205461241b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561125f565b50600061125f565b604080516101408101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e0810182905261010081018290529061012082015290565b82805461248090612b98565b90600052602060002090601f0160209004810192826124a257600085556124e8565b82601f106124bb57805160ff19168380011785556124e8565b828001600101855582156124e8579182015b828111156124e85782518255916020019190600101906124cd565b506124f49291506124f8565b5090565b5b808211156124f457600081556001016124f9565b80356001600160a01b038116811461252457600080fd5b919050565b60008060006060848603121561253e57600080fd5b6125478461250d565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b8181101561259e5783516001600160e01b03191683529284019291840191600101612578565b50909695505050505050565b80356001600160e01b03198116811461252457600080fd5b6000602082840312156125d457600080fd5b612397826125aa565b634e487b7160e01b600052602160045260246000fd5b60028110612603576126036125dd565b9052565b60005b8381101561262257818101518382015260200161260a565b83811115612631576000848401525b50505050565b6000815180845261264f816020860160208601612607565b601f01601f19169290920160200192915050565b60038110612603576126036125dd565b6001600160e01b03198b1681526001600160a01b038a81166020830152600090610140906126a4604085018d6125f3565b8a606085015260ff8a1660808501528160a08501526126c58285018a612637565b92508760c085015280871660e08501525050836101008301526126ec610120830184612663565b9b9a5050505050505050505050565b6000806040838503121561270e57600080fd5b6127178361250d565b946020939093013593505050565b60006020828403121561273757600080fd5b6123978261250d565b6000806040838503121561275357600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561285d57603f19898403018552815180516001600160e01b0319168452878101516001600160a01b03168885015286810151610140906127cf898701826125f3565b506060828101519086015260808083015160ff169086015260a0808301518187018390526127ff83880182612637565b9250505060c080830151818701525060e080830151612828828801826001600160a01b03169052565b50506101008281015190860152610120918201519161284981870184612663565b509588019593505090860190600101612789565b509098975050505050505050565b803560ff8116811461252457600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f8301126128a357600080fd5b813567ffffffffffffffff808211156128be576128be61287c565b604051601f8301601f19908116603f011681019082821181831017156128e6576128e661287c565b816040528381528660208588010111156128ff57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561293557600080fd5b61293e856125aa565b935061294c6020860161286b565b925060408501359150606085013567ffffffffffffffff81111561296f57600080fd5b61297b87828801612892565b91505092959194509250565b60008060006060848603121561299c57600080fd5b8335600281106129ab57600080fd5b92506129b96020850161286b565b9150604084013567ffffffffffffffff8111156129d557600080fd5b6129e186828701612892565b9150509250925092565b6020808252601f908201527f50726f706f73616c733a20526571756573747320706172616d206572726f7200604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015612a4a57612a4a612a22565b500390565b6000816000190483118215151615612a6957612a69612a22565b500290565b60008219821115612a8157612a81612a22565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612ab057612ab0612a22565b5060010190565b6020808252601f908201527f50726f706f73616c733a2050726f706f73616c20686173206578706972656400604082015260600190565b6020808252601d908201527f50726f706f73616c733a2070726f706f73616c206e6f74206578697374000000604082015260600190565b60208082526031908201527f50726f706f73616c733a2054686520737461747573206f662070726f706f73616040820152706c206d7573742062652070656e64696e6760781b606082015260800190565b600082612b9357634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680612bac57607f821691505b60208210811415612bcd57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612be557600080fd5b8151801515811461239757600080fd5b600060208284031215612c0757600080fd5b5051919050565b6bffffffffffffffffffffffff198660601b16815284601482015260ff60f81b8460f81b16603482015260008351612c4d816035850160208801612607565b60359201918201929092526055019594505050505056fea264697066735822122088b45040111f90e9323864ac7518e1cfc8b70885a491a3d3447d39ea4cad752264736f6c634300080b0033"
    },
    "0x0000000000000000000000000000000000fff003": {
      "balance": "0x0",
      "code": "0x6080604052600436106102815760003560e01c80637c068cfc1161014f578063c24dbebd116100c1578063d819bfef1161007a578063d819bfef1461070e578063e1e158a514610723578063efd644471461073f578063f2f60d2314610461578063fdb5fefc14610754578063ff3fd0e31461077457600080fd5b8063c24dbebd1461067d578063c3f5b2bd146106a4578063ca1e7819146106b9578063ccc46b1214610461578063cd34c352146106d9578063d4c28809146106f957600080fd5b80638a163582116101135780638a163582146105aa5780638f597608146105ca578063970abafe146105ea578063b97b020114610607578063bda4307814610627578063bfdf685a1461065057600080fd5b80637c068cfc1461052a5780637dfe330f1461054a5780637f0970101461055d578063862e63c0146105745780638730b2051461058a57600080fd5b80634dc8733f116101f357806366df2e04116101ac57806366df2e041461048b57806368d42605146104ab5780636b3e8721146104c05780636dd7d8ea146104ed57806374c259c614610500578063766718081461051557600080fd5b80634dc8733f146103f557806351ff3b9f1461041257806355eda4e81461042f5780635ab140d2146104445780635c3fb32914610461578063632c93a01461047657600080fd5b80631a28894d116102455780631a28894d1461031f5780632177428a1461033c5780632ba1167d146103595780632e897c5d146103865780632f051f42146103be578063485cc955146103d357600080fd5b8063049f82691461028d5780630a605c6d146102b55780630de4f271146102ca57806312856fb1146102ea57806318e0d5cf1461030a57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2605a81565b6040519081526020015b60405180910390f35b3480156102c157600080fd5b506102a2610789565b3480156102d657600080fd5b506102a26b60ef6b1aba6f07233000000081565b3480156102f657600080fd5b506102a26b50c783eb9b5c85f2a800000081565b34801561031657600080fd5b506102a2603c81565b34801561032b57600080fd5b506102a26809cc68ff586fdb000081565b34801561034857600080fd5b506102a26808848c23041d40800081565b34801561036557600080fd5b50610379610374366004611ba6565b610840565b6040516102ac9190611bd9565b34801561039257600080fd5b506003546103a6906001600160a01b031681565b6040516001600160a01b0390911681526020016102ac565b3480156103ca57600080fd5b506102a2600281565b3480156103df57600080fd5b506103f36103ee366004611c26565b6109a0565b005b34801561040157600080fd5b506102a2680ad5d2a5845133800081565b34801561041e57600080fd5b506102a2680b9b94d1046284800081565b34801561043b57600080fd5b506103a6600081565b34801561045057600080fd5b506102a2680529dbfa5807f5000081565b34801561046d57600080fd5b506102a2606481565b34801561048257600080fd5b506102a260d281565b34801561049757600080fd5b506102a26104a6366004611c59565b610a85565b3480156104b757600080fd5b506102a2606381565b3480156104cc57600080fd5b506104e06104db366004611ba6565b610aaf565b6040516102ac9190611c74565b6103f36104fb366004611c59565b610c75565b34801561050c57600080fd5b506102a260c881565b34801561052157600080fd5b506102a26110a8565b34801561053657600080fd5b506102a26b71175249d9818853b800000081565b6103f3610558366004611c59565b6110ba565b34801561056957600080fd5b506102a26203138081565b34801561058057600080fd5b506102a2610bb881565b34801561059657600080fd5b506103f36105a5366004611cec565b611336565b3480156105b657600080fd5b506102a26b3077b58d5d3783919800000081565b3480156105d657600080fd5b506102a26105e5366004611c59565b6114f1565b3480156105f657600080fd5b506102a26806f3d387809bd9000081565b34801561061357600080fd5b506102a26b409f9cbc7c4a04c22000000081565b34801561063357600080fd5b5061063d61012c81565b60405161ffff90911681526020016102ac565b34801561065c57600080fd5b5061067061066b366004611ba6565b611512565b6040516102ac9190611db1565b34801561068957600080fd5b50610692606481565b60405160ff90911681526020016102ac565b3480156106b057600080fd5b506102a2607881565b3480156106c557600080fd5b506002546103a6906001600160a01b031681565b3480156106e557600080fd5b506102a26106f4366004611c26565b6116dd565b34801561070557600080fd5b506102a2600381565b34801561071a57600080fd5b50610692604681565b34801561072f57600080fd5b506102a2670de0b6b3a764000081565b34801561074b57600080fd5b506102a2602181565b34801561076057600080fd5b506103f361076f366004611c59565b6117f8565b34801561078057600080fd5b506102a2604281565b3360009081526001602052604081206107a4600282016119b5565b6107b057600091505090565b6000805b6107c0836002016119b5565b8110156108395760006107d660028501836119bf565b6001600160a01b0381166000908152600486016020526040902054909150431115610826576001600160a01b03811660009081526005850160205260409020600101546108239084611e27565b92505b508061083181611e3f565b9150506107b4565b5092915050565b60606000831180156108525750600082115b6108775760405162461bcd60e51b815260040161086e90611e5a565b60405180910390fd5b6001600160a01b038416600090815260016020819052604082209190849061089f9087611e91565b6108a99190611ea8565b9050806108b8836002016119b5565b10156108c757600093506108f0565b6000816108d6846002016119b5565b6108e09190611e91565b9050848110156108ee578094505b505b60008467ffffffffffffffff81111561090b5761090b611cd6565b604051908082528060200260200182016040528015610934578160200160208202803683370190505b50905060005b858110156109955761095961094f8483611e27565b60028601906119bf565b82828151811061096b5761096b611ec7565b6001600160a01b03909216602092830291909101909101528061098d81611e3f565b91505061093a565b509695505050505050565b600054610100900460ff16806109b9575060005460ff16155b610a1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161086e565b600054610100900460ff16158015610a3e576000805461ffff19166101011790555b600280546001600160a01b038086166001600160a01b03199283161790925560038054928516929091169190911790558015610a80576000805461ff00191690555b505050565b6001600160a01b0381166000908152600160205260408120610aa9906002016119b5565b92915050565b6060600083118015610ac15750600082115b610add5760405162461bcd60e51b815260040161086e90611e5a565b6001600160a01b0384166000908152600160208190526040822091908490610b059087611e91565b610b0f9190611ea8565b905080610b1e836002016119b5565b1015610b2d5760009350610b56565b600081610b3c846002016119b5565b610b469190611e91565b905084811015610b54578094505b505b60008467ffffffffffffffff811115610b7157610b71611cd6565b604051908082528060200260200182016040528015610bcf57816020015b610bbc604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b815260200190600190039081610b8f5790505b50905060005b85811015610995576000610bf6610bec8584611e27565b60028701906119bf565b604080516060810182526001600160a01b038316808252600081815260058a016020908152848220600101548185015291815260048a0190915282902054918101919091528451919250908190859085908110610c5557610c55611ec7565b602002602001018190525050508080610c6d90611e3f565b915050610bd5565b600254604051632ccd283360e21b81523360048201526001600160a01b039091169063b334a0cc90602401602060405180830381865afa158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce19190611edd565b15610cfe5760405162461bcd60e51b815260040161086e90611eff565b333b15610d6b5760405162461bcd60e51b815260206004820152603560248201527f4e6f6465566f7465733a20546865206d73672e73656e6465722063616e206e6f6044820152747420626520636f6e7472616374206164647265737360581b606482015260840161086e565b600254604051632ccd283360e21b81526001600160a01b0383811660048301529091169063b334a0cc90602401602060405180830381865afa158015610db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd99190611edd565b610e315760405162461bcd60e51b8152602060048201526024808201527f4e6f6465566f7465733a205468652076616c206d7573742062652076616c696460448201526330ba37b960e11b606482015260840161086e565b60003411610e905760405162461bcd60e51b815260206004820152602660248201527f4e6f6465566f7465733a20566f7465206d7573742067726561746572207468616044820152656e207a65726f60d01b606482015260840161086e565b610e99816117f8565b336000908152600160205260409020610eb560028201836119d2565b15610f145760405162461bcd60e51b815260206004820152602960248201527f4e6f6465566f7465733a205468652076616c696461746f722069732063616e63604482015268656c20766f74696e6760b81b606482015260840161086e565b610f1e81836119d2565b15610f5e576001600160a01b0382166000908152600582016020526040812060018101805491923492610f52908490611e27565b90915550610ff8915050565b610f6881836119f4565b50610f9d604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b3460208281019182526001600160a01b03858116808552600090815260058601909252604091829020845181546001600160a01b03191692169190911781559151600183015582015160028201556060909101516003909101555b60025460405163b3334dc360e01b81523360048201526001600160a01b038481166024830152346044830181905292169163b3334dc3916064016000604051808303818588803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b50506040513481526001600160a01b03861693503392507f49ce5cb7b86410ac7069ff893207f2804cf4614b4203eaf4e0e37bb41a2b0ef0915060200160405180910390a35050565b60006110b560c843611f4d565b905090565b600254604051632ccd283360e21b81523360048201526001600160a01b039091169063b334a0cc90602401602060405180830381865afa158015611102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111269190611edd565b156111435760405162461bcd60e51b815260040161086e90611eff565b61114c816117f8565b33600090815260016020526040902061116581836119d2565b6111cf5760405162461bcd60e51b815260206004820152603560248201527f4e6f6465566f7465733a20546865206d73672e73656e64657220646964206e6f6044820152743a103b37ba32903a3434b9903b30b634b230ba37b960591b606482015260840161086e565b6111d98183611a09565b506111e760028201836119f4565b506111f3606443611e27565b6001600160a01b03838116600081815260048581016020908152604080842096909655600587019052908490206001015460025494516306285a1760e41b81523392810192909252602482019290925260448101829052909290911690636285a17090606401600060405180830381600087803b15801561127357600080fd5b505af1158015611287573d6000803e3d6000fd5b5050600354604051638b48390b60e01b81526001600160a01b038781166004830152602482018690529091169250638b48390b9150604401600060405180830381600087803b1580156112d957600080fd5b505af11580156112ed573d6000803e3d6000fd5b50506040518381526001600160a01b03861692503391507f2680b94cf1f3f9e6d0cb7ad95c1157485cb0823fbe9a8390895a92cf88a6b4d09060200160405180910390a3505050565b33600090815260016020526040812090805b835181101561148857600084828151811061136557611365611ec7565b6020026020010151905061138581856002016119d290919063ffffffff16565b6113d15760405162461bcd60e51b815260206004820152601960248201527f4e6f6465566f7465733a2063616e206e6f742072656465656d00000000000000604482015260640161086e565b6001600160a01b0381166000908152600485016020526040902054431115611475576001600160a01b038116600090815260058501602052604090206001015461141b9084611e27565b925061142a6002850182611a09565b506001600160a01b0381166000908152600585016020908152604080832080546001600160a01b03191681556001810184905560028101849055600301839055600487019091528120555b508061148081611e3f565b915050611348565b50604051339082156108fc029083906000818181858888f193505050501580156114b6573d6000803e3d6000fd5b5060405181815233907f8d15a2189c94a743df2a17c8f4cdd87250b7caa8560e57efa74a59352fcee9d29060200160405180910390a2505050565b6001600160a01b0381166000908152600160205260408120610aa9906119b5565b60606000831180156115245750600082115b6115405760405162461bcd60e51b815260040161086e90611e5a565b6001600160a01b03841660009081526001602081905260408220919084906115689087611e91565b6115729190611ea8565b90508061157e836119b5565b101561158d57600093506115b3565b600081611599846119b5565b6115a39190611e91565b9050848110156115b1578094505b505b60008467ffffffffffffffff8111156115ce576115ce611cd6565b60405190808252806020026020018201604052801561163357816020015b611620604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b8152602001906001900390816115ec5790505b50905060005b858110156109955760058401600061165b6116548685611e27565b87906119bf565b6001600160a01b0390811682526020808301939093526040918201600020825160808101845281549092168252600181015493820193909352600283015491810191909152600390910154606082015282518390839081106116bf576116bf611ec7565b602002602001018190525080806116d590611e3f565b915050611639565b6001600160a01b03811660009081526001602052604081206116ff81856119d2565b61170d576000915050610aa9565b600354604051630615cdd760e51b81526001600160a01b038681166004830152600092169063c2b9bae0906024016040805180830381865afa158015611757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177b9190611f6f565b9150506117866110a8565b6001600160a01b038616600090815260058401602052604090206003015414156117b557600092505050610aa9565b6001600160a01b0385166000908152600583016020526040902060028101546001909101546117e5908390611ea8565b6117ef9190611e91565b95945050505050565b6003546040516378a74e1560e01b81526001600160a01b038381166004830152909116906378a74e159060240160408051808303816000875af1158015611843573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118679190611f6f565b5050336000908152600160205260408120906118816110a8565b6001600160a01b038416600090815260058401602052604090206003015490915081141561190d5760405162461bcd60e51b815260206004820152603360248201527f4e6f6465566f7465733a204861766520616c7265616479207265636569766564604482015272040e4caeec2e4c8e640e8d0d2e640cae0dec6d606b1b606482015260840161086e565b600061191984336116dd565b6001600160a01b03851660009081526005850160205260408082206002810184905560030185905551919250339183156108fc0291849190818181858888f1935050505015801561196e573d6000803e3d6000fd5b506040518181526001600160a01b0385169033907f5adbbd5559e98c35f087bd91bddad0b07e28e6c556934336666e533d40fe9c629060200160405180910390a350505050565b6000610aa9825490565b60006119cb8383611a1e565b9392505050565b6001600160a01b038116600090815260018301602052604081205415156119cb565b60006119cb836001600160a01b038416611a48565b60006119cb836001600160a01b038416611a97565b6000826000018281548110611a3557611a35611ec7565b9060005260206000200154905092915050565b6000818152600183016020526040812054611a8f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610aa9565b506000610aa9565b60008181526001830160205260408120548015611b80576000611abb600183611e91565b8554909150600090611acf90600190611e91565b9050818114611b34576000866000018281548110611aef57611aef611ec7565b9060005260206000200154905080876000018481548110611b1257611b12611ec7565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611b4557611b45611f93565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610aa9565b6000915050610aa9565b80356001600160a01b0381168114611ba157600080fd5b919050565b600080600060608486031215611bbb57600080fd5b611bc484611b8a565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015611c1a5783516001600160a01b031683529284019291840191600101611bf5565b50909695505050505050565b60008060408385031215611c3957600080fd5b611c4283611b8a565b9150611c5060208401611b8a565b90509250929050565b600060208284031215611c6b57600080fd5b6119cb82611b8a565b602080825282518282018190526000919060409081850190868401855b82811015611cc957815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101611c91565b5091979650505050505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611cff57600080fd5b823567ffffffffffffffff80821115611d1757600080fd5b818501915085601f830112611d2b57600080fd5b813581811115611d3d57611d3d611cd6565b8060051b604051601f19603f83011681018181108582111715611d6257611d62611cd6565b604052918252848201925083810185019188831115611d8057600080fd5b938501935b82851015611da557611d9685611b8a565b84529385019392850192611d85565b98975050505050505050565b602080825282518282018190526000919060409081850190868401855b82811015611cc957815180516001600160a01b03168552868101518786015285810151868601526060908101519085015260809093019290850190600101611dce565b634e487b7160e01b600052601160045260246000fd5b60008219821115611e3a57611e3a611e11565b500190565b6000600019821415611e5357611e53611e11565b5060010190565b6020808252601f908201527f50726f706f73616c733a20526571756573747320706172616d206572726f7200604082015260600190565b600082821015611ea357611ea3611e11565b500390565b6000816000190483118215151615611ec257611ec2611e11565b500290565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611eef57600080fd5b815180151581146119cb57600080fd5b6020808252602e908201527f4e6f6465566f7465733a20546865206d73672e73656e6465722063616e206e6f60408201526d3a103132903b30b634b230ba37b960911b606082015260800190565b600082611f6a57634e487b7160e01b600052601260045260246000fd5b500490565b60008060408385031215611f8257600080fd5b505080516020909101519092909150565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220aee6f3a62f6b5e5eba1019f5089d797d4e0a5bf57d6d464fb5fd4fdacf4b19ba64736f6c634300080b0033"
    },
    "0x0000000000000000000000000000000000fff004": {
      "balance": "0x0",
      "code": "0x6080604052600436106102c95760003560e01c80638a16358211610175578063cf028ff5116100dc578063eeb5685911610095578063f62232201161006f578063f622322014610880578063f756f27d146108a0578063f9db4fd9146108cd578063ff3fd0e3146108ed57600080fd5b8063eeb568591461084b578063efd644471461086b578063f2f60d23146104a057600080fd5b8063cf028ff514610788578063d4c28809146107c0578063d819bfef146107d5578063e1e158a5146107ea578063ea7221a114610806578063eda8329b1461083657600080fd5b8063bda430781161012e578063bda43078146106c8578063c24dbebd146106f1578063c2b9bae014610718578063c3f5b2bd14610738578063c6b61e4c1461074d578063ccc46b12146104a057600080fd5b80638a163582146105de5780638b48390b146105fe57806393f9acab1461061e578063970abafe146106785780639a2e559714610695578063b97b0201146106a857600080fd5b806355eda4e81161023457806368d42605116101ed57806378a74e15116101c757806378a74e151461055c5780637c068cfc146105915780637f097010146105b1578063862e63c0146105c857600080fd5b806368d426051461051d57806374c259c614610532578063766718081461054757600080fd5b806355eda4e8146104365780635743edf1146104635780635ab140d2146104835780635c3fb329146104a057806361e07be8146104b5578063632c93a01461050857600080fd5b8063244a553911610286578063244a5539146103855780632f051f42146103a757806338219ad3146103bc578063485cc955146103dc5780634dc8733f146103fc57806351ff3b9f1461041957600080fd5b8063049f8269146102ce5780630de4f271146102f657806312856fb11461031657806318e0d5cf146103365780631a28894d1461034b5780632177428a14610368575b600080fd5b3480156102da57600080fd5b506102e3605a81565b6040519081526020015b60405180910390f35b34801561030257600080fd5b506102e36b60ef6b1aba6f07233000000081565b34801561032257600080fd5b506102e36b50c783eb9b5c85f2a800000081565b34801561034257600080fd5b506102e3603c81565b34801561035757600080fd5b506102e36809cc68ff586fdb000081565b34801561037457600080fd5b506102e36808848c23041d40800081565b34801561039157600080fd5b506103a56103a03660046118e5565b610902565b005b3480156103b357600080fd5b506102e3600281565b3480156103c857600080fd5b506103a56103d7366004611907565b610941565b3480156103e857600080fd5b506103a56103f7366004611929565b6109a0565b34801561040857600080fd5b506102e3680ad5d2a5845133800081565b34801561042557600080fd5b506102e3680b9b94d1046284800081565b34801561044257600080fd5b5061044b600081565b6040516001600160a01b0390911681526020016102ed565b34801561046f57600080fd5b5060035461044b906001600160a01b031681565b34801561048f57600080fd5b506102e3680529dbfa5807f5000081565b3480156104ac57600080fd5b506102e3606481565b3480156104c157600080fd5b506104d56104d036600461195c565b610a84565b6040516102ed91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b34801561051457600080fd5b506102e360d281565b34801561052957600080fd5b506102e3606381565b34801561053e57600080fd5b506102e360c881565b34801561055357600080fd5b506102e3610b08565b34801561056857600080fd5b5061057c6105773660046118e5565b610b1a565b604080519283526020830191909152016102ed565b34801561059d57600080fd5b506102e36b71175249d9818853b800000081565b3480156105bd57600080fd5b506102e36203138081565b3480156105d457600080fd5b506102e3610bb881565b3480156105ea57600080fd5b506102e36b3077b58d5d3783919800000081565b34801561060a57600080fd5b506103a561061936600461195c565b610d60565b34801561062a57600080fd5b5061065d6106393660046118e5565b60016020526000908152604090206002810154600382015460049092015490919083565b604080519384526020840192909252908201526060016102ed565b34801561068457600080fd5b506102e36806f3d387809bd9000081565b6103a56106a3366004611986565b610ddc565b3480156106b457600080fd5b506102e36b409f9cbc7c4a04c22000000081565b3480156106d457600080fd5b506106de61012c81565b60405161ffff90911681526020016102ed565b3480156106fd57600080fd5b50610706606481565b60405160ff90911681526020016102ed565b34801561072457600080fd5b5061057c6107333660046118e5565b610fdd565b34801561074457600080fd5b506102e3607881565b34801561075957600080fd5b5061065d610768366004611986565b600260208190526000918252604090912080546001820154919092015483565b34801561079457600080fd5b506102e36107a336600461195c565b600560209081526000928352604080842090915290825290205481565b3480156107cc57600080fd5b506102e3600381565b3480156107e157600080fd5b50610706604681565b3480156107f657600080fd5b506102e3670de0b6b3a764000081565b34801561081257600080fd5b506108266108213660046118e5565b611133565b60405190151581526020016102ed565b34801561084257600080fd5b506103a561138c565b34801561085757600080fd5b5060045461044b906001600160a01b031681565b34801561087757600080fd5b506102e3602181565b34801561088c57600080fd5b506103a561089b36600461195c565b611397565b3480156108ac57600080fd5b506108c06108bb3660046118e5565b611410565b6040516102ed919061199f565b3480156108d957600080fd5b5061057c6108e83660046118e5565b61147c565b3480156108f957600080fd5b506102e3604281565b6003546001600160a01b031633146109355760405162461bcd60e51b815260040161092c906119e3565b60405180910390fd5b61093e81611574565b50565b6003546001600160a01b0316331461096b5760405162461bcd60e51b815260040161092c906119e3565b6000610975610b08565b60008181526002602081905260409091206001810186905501839055905061099b6116bc565b505050565b600054610100900460ff16806109b9575060005460ff16155b610a1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161092c565b600054610100900460ff16158015610a3e576000805461ffff19166101011790555b600380546001600160a01b038086166001600160a01b0319928316179092556004805492851692909116919091179055801561099b576000805461ff0019169055505050565b610aaf6040518060800160405280600081526020016000815260200160008152602001600081525090565b506001600160a01b03919091166000908152600160208181526040808420948452938201815291839020835160808101855281548152918101549282019290925260028201549281019290925260030154606082015290565b6000610b1560c843611a3e565b905090565b60045460009081906001600160a01b03163314610b495760405162461bcd60e51b815260040161092c90611a60565b6001600160a01b03831660009081526001602052604090208054610b735750600093849350915050565b6000806000806000806000610b86610b08565b6003890154939750919550935091505b8554811015610cdc576000866000018281548110610bb657610bb6611aa4565b90600052602060002001549050816001610bd09190611aba565b945082811480610bf157506000818152600188016020526040902060020154155b15610c1c576000818152600180890160205260409091200154610c149085611aba565b935050610cca565b6000818152600180890160205260408220600281015460038201549190920154610c469190611ad2565b610c509190611a3e565b60008381526001808b0160205260409091206002810154910154919250610c7691611a3e565b886004016000828254610c899190611aba565b90915550610c9990508186611aba565b60008381526001808b0160205260409091200154909550610cbb908290611af1565b610cc59088611aba565b965050505b80610cd481611b08565b915050610b96565b506003850183905560405160009083156108fc0290849083818181858288f19350505050158015610d11573d6000803e3d6000fd5b506004546040516001600160a01b039091169085156108fc029086906000818181858888f19350505050158015610d4c573d6000803e3d6000fd5b505050600490920154909350915050915091565b6004546001600160a01b03163314610d8a5760405162461bcd60e51b815260040161092c90611a60565b6001600160a01b03821660009081526001602081905260408220918391830190610db2610b08565b81526020019081526020016000206003016000828254610dd29190611aba565b9091555050505050565b334114610e1e5760405162461bcd60e51b815260206004820152601060248201526f36b9b39739b2b73232b91032b93937b960811b604482015260640161092c565b3a15610e665760405162461bcd60e51b815260206004820152601760248201527650726f68696269742065787465726e616c2063616c6c7360481b604482015260640161092c565b600354604051631f4a58fb60e31b81523360048201526000916001600160a01b03169063fa52c7d89060240160c060405180830381865afa158015610eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed39190611b43565b90506000606460ff16826040015160ff1684610eef9190611ad2565b610ef99190611a3e565b90506000610f078285611af1565b33600090815260016020819052604082208054939450928391610f2991611af1565b81548110610f3957610f39611aa4565b90600052602060002001549050828260010160008381526020019081526020016000206000016000828254610f6e9190611aba565b90915550506000818152600180840160205260408220018054869290610f95908490611aba565b9091555050604080518481526020810186905233917f7dc4e5df59513708dca355b8706273a5df7b810a4cec8019f2a4b9bb166a1a04910160405180910390a2505050505050565b6001600160a01b0381166000908152600160205260408120805482919061100a5750600093849350915050565b600080600080600061101a610b08565b600387015492955090935091505b845481101561112657600085600001828154811061104857611048611aa4565b906000526020600020015490508281148061107457506000818152600187016020526040902060020154155b1561107f5750611114565b60008181526001808801602052604082206002810154600382015491909201546110a99190611ad2565b6110b39190611a3e565b60008381526001808a01602052604090912060028101549101549192506110d991611a3e565b6110e39086611aba565b60008381526001808a0160205260409091200154909550611105908290611af1565b61110f9087611aba565b955050505b8061111e81611b08565b915050611028565b5091969095509350505050565b60003341146111775760405162461bcd60e51b815260206004820152601060248201526f36b9b39739b2b73232b91032b93937b960811b604482015260640161092c565b3a156111bf5760405162461bcd60e51b815260206004820152601760248201527650726f68696269742065787465726e616c2063616c6c7360481b604482015260640161092c565b60006111c9610b08565b6001600160a01b038416600090815260056020908152604080832084845290915281208054929350600192909190611202908490611aba565b90915550506001600160a01b03831660009081526005602090815260408083208484529091529020546003101561133d576001600160a01b038316600090815260016020818152604080842085855292830190915280832080549084905590519192909182156108fc0290839083818181858288f1935050505015801561128d573d6000803e3d6000fd5b506003546040516334c62da960e11b81526001600160a01b0387811660048301529091169063698c5b5290602401600060405180830381600087803b1580156112d557600080fd5b505af11580156112e9573d6000803e3d6000fd5b50506040805160018152602081018590526001600160a01b03891693507f92f5470e491b0e248c1d5ccd80e493d514afbfa18ec7fd674f1794f67af82d2192500160405180910390a2506001949350505050565b60408051600080825260208201526001600160a01b038516917f92f5470e491b0e248c1d5ccd80e493d514afbfa18ec7fd674f1794f67af82d21910160405180910390a260009150505b919050565b61139533611574565b565b6003546001600160a01b031633146113c15760405162461bcd60e51b815260040161092c906119e3565b6001600160a01b0382166000908152600160205260408120906113e2610b08565b8254600181810185556000858152602080822090930184905592835290930190925250604090206002015550565b6001600160a01b03811660009081526001602090815260409182902080548351818402810184019094528084526060939283018282801561147057602002820191906000526020600020905b81548152602001906001019080831161145c575b50505050509050919050565b6001600160a01b038116600090815260016020526040812080548291906114a95750600093849350915050565b60008060008060006114b9610b08565b92509250925060005b600285015485546114d39190611af1565b811015611126576000856000018287600201546114f09190611aba565b8154811061150057611500611aa4565b906000526020600020015490508281600661151b9190611aba565b101561154357600081815260018701602052604090205461153c9086611aba565b9450611561565b600081815260018701602052604090205461155e9085611aba565b93505b508061156c81611b08565b9150506114c2565b6001600160a01b03811660009081526001602052604090208054611596575050565b60008060008060006115a6610b08565b600287015492955090935091505b84548110156116335760008560000182815481106115d4576115d4611aa4565b90600052602060002001549050828160066115ef9190611aba565b10156116205760008181526001870160205260409020546116109086611aba565b945061161d826001611aba565b93505b508061162b81611b08565b9150506115b4565b50600284018290556040516001600160a01b0386169084156108fc029085906000818181858888f19350505050158015611671573d6000803e3d6000fd5b50846001600160a01b03167f27cd4943844278eed7aac1166ba9163174ae7f03a40a423c329562fc5e41a5b3846040516116ad91815260200190565b60405180910390a25050505050565b6000806116c7610b08565b6000915091506000600d8310156116e8576116e3836001611aba565b6116eb565b600e5b90506000816116fb856001611aba565b6117059190611af1565b90505b83811161173f5760008181526002602052604090206001015461172b9084611aba565b92508061173781611b08565b915050611708565b50600061174c8284611a3e565b90506b3077b58d5d37839198000000811015611781576000848152600260205260409020680529dbfa5807f5000090556118c8565b806b3077b58d5d37839198000000111580156117a857506b409f9cbc7c4a04c22000000081105b156117cc5760008481526002602052604090206806f3d387809bd9000090556118c8565b806b409f9cbc7c4a04c220000000111580156117f357506b50c783eb9b5c85f2a800000081105b156118175760008481526002602052604090206808848c23041d40800090556118c8565b806b50c783eb9b5c85f2a80000001115801561183e57506b60ef6b1aba6f07233000000081105b156118625760008481526002602052604090206809cc68ff586fdb000090556118c8565b806b60ef6b1aba6f0723300000001115801561188957506b71175249d9818853b800000081105b156118ad576000848152600260205260409020680ad5d2a5845133800090556118c8565b6000848152600260205260409020680b9b94d1046284800090555b50505050565b80356001600160a01b038116811461138757600080fd5b6000602082840312156118f757600080fd5b611900826118ce565b9392505050565b6000806040838503121561191a57600080fd5b50508035926020909101359150565b6000806040838503121561193c57600080fd5b611945836118ce565b9150611953602084016118ce565b90509250929050565b6000806040838503121561196f57600080fd5b611978836118ce565b946020939093013593505050565b60006020828403121561199857600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156119d7578351835292840192918401916001016119bb565b50909695505050505050565b60208082526025908201527f53797374656d526577617264733a206e6f742056616c696461746f7220636f6e6040820152641d1c9858dd60da1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526024908201527f53797374656d526577617264733a206e6f74204e6f6465566f746520636f6e746040820152631c9858dd60e21b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008219821115611acd57611acd611a28565b500190565b6000816000190483118215151615611aec57611aec611a28565b500290565b600082821015611b0357611b03611a28565b500390565b6000600019821415611b1c57611b1c611a28565b5060010190565b80516004811061138757600080fd5b805160ff8116811461138757600080fd5b600060c08284031215611b5557600080fd5b60405160c0810181811067ffffffffffffffff82111715611b8657634e487b7160e01b600052604160045260246000fd5b604052611b9283611b23565b815260208301516020820152611baa60408401611b32565b6040820152606083015160608201526080830151608082015260a083015160a0820152809150509291505056fea2646970667358221220fc1d5e9a9a4797d022d94bd69330266cec9336cc4b540784fce458e8b5d2cbc764736f6c634300080b0033"
    },
    "0x0000000000000000000000000000000000fff005": {
      "balance": "0x0",
      "code": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c80635cd8a76b116100de578063abbcbd3a11610097578063db6619b011610071578063db6619b0146104c1578063f851a440146104c9578063fb48270c146104d1578063ff0617df146104d957610173565b8063abbcbd3a14610455578063c4d66de81461046f578063cec0705a1461049557610173565b80635cd8a76b146103955780635eca4a701461039d5780636dfb5176146103c357806370b03fc5146103f257806389449301146103fa5780639e23c2091461042f57610173565b8063327564b611610130578063327564b6146102ec578063349cb711146102f4578063367f8a581461032357806343e0c73a146103445780634f608dd31461034c5780634fb9e9b71461036f57610173565b80630c47632714610178578063143d79b6146101dc578063158ef93e1461022c57806318c662121461024857806322fbf1e8146102a057806326782247146102c8575b600080fd5b6101a46004803603604081101561018e57600080fd5b50803590602001356001600160801b03166104e1565b60405180848152602001836001600160801b031681526020018260038111156101c957fe5b8152602001935050505060405180910390f35b610202600480360360208110156101f257600080fd5b50356001600160a01b03166105c7565b60405180831515815260200182600281111561021a57fe5b81526020019250505060405180910390f35b610234610649565b604080519115158252519081900360200190f35b610250610652565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028c578181015183820152602001610274565b505050509050019250505060405180910390f35b6102c6600480360360208110156102b657600080fd5b50356001600160a01b03166106b4565b005b6102d06107b0565b604080516001600160a01b039092168252519081900360200190f35b6102346107bf565b6102c66004803603604081101561030a57600080fd5b5080356001600160a01b0316906020013560ff166107cd565b61032b610a00565b6040805163ffffffff9092168252519081900360200190f35b6102c6610a06565b6101a46004803603602081101561036257600080fd5b503563ffffffff16610adc565b6102c66004803603602081101561038557600080fd5b50356001600160a01b0316610bcb565b6102c6610c67565b610234600480360360208110156103b357600080fd5b50356001600160a01b03166110b6565b6102c6600480360360408110156103d957600080fd5b5080356001600160a01b0316906020013560ff166110d4565b6102506113cb565b6102346004803603606081101561041057600080fd5b5080359060208101356001600160801b0316906040013560ff1661142b565b6102c66004803603602081101561044557600080fd5b50356001600160a01b03166117b1565b61045d6118ab565b60408051918252519081900360200190f35b6102c66004803603602081101561048557600080fd5b50356001600160a01b03166118b1565b610234600480360360408110156104ab57600080fd5b50803590602001356001600160801b0316611930565b6102c6611d14565b6102d0611def565b6102c6611e04565b61045d611ebe565b6000828152600a602090815260408083206001600160801b038516845290915281205481908190801580159061051957506009548111155b156105b457610526612059565b6009600183038154811061053657fe5b60009182526020918290206040805160608101825260029093029091018054835260018101546001600160801b0381169484019490945291929083019060ff600160801b90910416600381111561058957fe5b600381111561059457fe5b9052508051602082015160409092015190965090945092506105c0915050565b50600092508291508190505b9250925092565b6001600160a01b038116600090815260056020908152604080832054600690925282205482911580159115159082906105fd5750805b156106115760016002935093505050610644565b81156106265760016000935093505050610644565b801561063a57600180935093505050610644565b6000809350935050505b915091565b60005460ff1681565b606060038054806020026020016040519081016040528092919081815260200182805480156106aa57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161068c575b5050505050905090565b6000546201000090046001600160a01b03163314610706576040805162461bcd60e51b815260206004820152600a60248201526941646d696e206f6e6c7960b01b604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205460ff1615610764576040805162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e481859191959609a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517f058fdae480ed8e99b762bceb2d39835a68ee3a4789cd84e5c90cd59722ba02099190a250565b6001546001600160a01b031681565b600054610100900460ff1681565b6000546201000090046001600160a01b0316331461081f576040805162461bcd60e51b815260206004820152600a60248201526941646d696e206f6e6c7960b01b604482015290519081900360640190fd5b600281600281111561082d57fe5b141561090e576001600160a01b038216600090815260056020526040902054610890576040805162461bcd60e51b815260206004820152601060248201526f1b9bdd081a5b88199c9bdb481b1a5cdd60821b604482015290519081900360640190fd5b6001600160a01b0382166000908152600660205260409020546108eb576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd081a5b881d1bc81b1a5cdd60921b604482015290519081900360640190fd5b6108fa60036005846000611ec4565b61090960046006846001611ec4565b6109f8565b600081600281111561091c57fe5b141561098e576001600160a01b03821660009081526005602052604090205461097f576040805162461bcd60e51b815260206004820152601060248201526f1b9bdd081a5b88199c9bdb481b1a5cdd60821b604482015290519081900360640190fd5b61090960036005846000611ec4565b6001600160a01b0382166000908152600660205260409020546109e9576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd081a5b881d1bc81b1a5cdd60921b604482015290519081900360640190fd5b6109f860046006846001611ec4565b505043600755565b60095490565b6000546201000090046001600160a01b03163314610a58576040805162461bcd60e51b815260206004820152600a60248201526941646d696e206f6e6c7960b01b604482015290519081900360640190fd5b600054610100900460ff16610aa7576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48191a5cd8589b195960821b604482015290519081900360640190fd5b6000805461ff00191681556040517f733a7f99819dc7466bff56e7c0b6753b43b750a692f2a5bb4fe373815a0c7845908290a2565b60008060006009805490508463ffffffff1610610b35576040805162461bcd60e51b8152602060048201526012602482015271696e646578206f7574206f662072616e676560701b604482015290519081900360640190fd5b610b3d612059565b60098563ffffffff1681548110610b5057fe5b60009182526020918290206040805160608101825260029093029091018054835260018101546001600160801b0381169484019490945291929083019060ff600160801b909104166003811115610ba357fe5b6003811115610bae57fe5b905250805160208201516040909201519097919650945092505050565b6000546201000090046001600160a01b03163314610c1d576040805162461bcd60e51b815260206004820152600a60248201526941646d696e206f6e6c7960b01b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517faefcaa6215f99fe8c2f605dd268ee4d23a5b596bbca026e25ce8446187f4f1ba90600090a250565b60085415610cbc576040805162461bcd60e51b815260206004820152601e60248201527f4f6e6c7920696e697469616c697a65206265666f726520616e79207573650000604482015290519081900360640190fd5b60075415610d11576040805162461bcd60e51b815260206004820152601e60248201527f4f6e6c7920696e697469616c697a65206265666f726520616e79207573650000604482015290519081900360640190fd5b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001610d3c612059565b50604080516060810182528381526001600160801b0383811660208301908152600193830184815260098054958601815560005283516000805160206120988339815191526002909602958601908155915160008051602061207883398151915290950180546001600160801b031916959093169490941780835593519293849391929060ff60801b1916600160801b836003811115610dd857fe5b021790555050600980546000958652600a602090815260408088206001600160801b039788168952825280882083905580516060810182527f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987808252600293820184815260019383018481529386018755959099528051600080516020612098833981519152948402948501908155945160008051602061207883398151915290940180546001600160801b03191694909816939093178088559051919692955085945090919060ff60801b1916600160801b836003811115610eb757fe5b021790555050600980546000958652600a602090815260408088206001600160801b03888116808b52918452828a2085905582516060810184527fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62808252948101928352600193810184815293860187559590995284516002909402600080516020612098833981519152810194855590516000805160206120788339815191529091018054919099166001600160801b031990911617808955905191979395508594509192909160ff60801b1916600160801b836003811115610f9757fe5b021790555050600980546000958652600a602090815260408088206001600160801b03888116808b52918452828a2085905582516060810184527f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb808252948101928352600193810184815293860187559590995284516002909402600080516020612098833981519152810194855590516000805160206120788339815191529091018054919099166001600160801b031990911617808955905191979395508594509192909160ff60801b1916600160801b83600381111561107757fe5b0217905550506009546000948552600a602090815260408087206001600160801b03909616875294905292909320919091555050436007819055600855565b6001600160a01b031660009081526002602052604090205460ff1690565b6000546201000090046001600160a01b03163314611126576040805162461bcd60e51b815260206004820152600a60248201526941646d696e206f6e6c7960b01b604482015290519081900360640190fd5b6000546001600160a01b038381166201000090920416141561118f576040805162461bcd60e51b815260206004820152601d60248201527f63616e6e6f74206164642061646d696e20746f20626c61636b6c697374000000604482015290519081900360640190fd5b600281600281111561119d57fe5b1415611284576001600160a01b03821660009081526005602052604090205415611205576040805162461bcd60e51b8152602060048201526014602482015273185b1c9958591e481a5b88199c9bdb481b1a5cdd60621b604482015290519081900360640190fd5b6001600160a01b03821660009081526006602052604090205415611265576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481a5b881d1bc81b1a5cdd60721b604482015290519081900360640190fd5b6112726003600584612016565b61127f6004600684612016565b611374565b600081600281111561129257fe5b1415611307576001600160a01b038216600090815260056020526040902054156112fa576040805162461bcd60e51b8152602060048201526014602482015273185b1c9958591e481a5b88199c9bdb481b1a5cdd60621b604482015290519081900360640190fd5b61127f6003600584612016565b6001600160a01b03821660009081526006602052604090205415611367576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481a5b881d1bc81b1a5cdd60721b604482015290519081900360640190fd5b6113746004600684612016565b43600781905550816001600160a01b03167f4bb8845da5ed7c2df200814ba7a0f3db11326cc817cf9a042fa54d4e5f6f29bb82604051808260028111156113b757fe5b815260200191505060405180910390a25050565b606060048054806020026020016040519081016040528092919081815260200182805480156106aa576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161068c575050505050905090565b600080546201000090046001600160a01b0316331461147e576040805162461bcd60e51b815260206004820152600a60248201526941646d696e206f6e6c7960b01b604482015290519081900360640190fd5b836114d0576040805162461bcd60e51b815260206004820152601d60248201527f6576656e745369676e6174757265206d757374206e6f7420656d707479000000604482015290519081900360640190fd5b6000836001600160801b03161161152e576040805162461bcd60e51b815260206004820152601f60248201527f636865636b20696e646578206d7573742067726561746572207468616e203000604482015290519081900360640190fd5b600082600381111561153c57fe5b1180156115555750600382600381111561155257fe5b11155b61159b576040805162461bcd60e51b8152602060048201526012602482015271696e76616c696420636865636b207479706560701b604482015290519081900360640190fd5b6000848152600a602090815260408083206001600160801b03871684529091529020548015611665576000600960018303815481106115d657fe5b90600052602060002090600202019050838160010160106101000a81548160ff0219169083600381111561160657fe5b0217905550857f07b8dde0de807efa8ecba675ef2be9d8af8f01e266085068e60c8e76837ee11a868660405180836001600160801b0316815260200182600381111561164e57fe5b81526020019250505060405180910390a2506117a2565b61166d612059565b6040518060600160405280878152602001866001600160801b0316815260200185600381111561169957fe5b905260098054600181018255600091909152815160029091026000805160206120988339815191528101918255602083015160008051602061207883398151915290910180546001600160801b039092166001600160801b03199092169190911780825560408401519394508493919060ff60801b1916600160801b83600381111561172157fe5b0217905550506009546000888152600a602090815260408083206001600160801b038b16808552908352928190209390935591519081528892507f441fbdf9d33c890abf8663a8fd49b8ee03e20ba4cce546dfa92d8bce8f1abf6b9188918891810182600381111561178f57fe5b81526020019250505060405180910390a2505b50504360085560019392505050565b6000546201000090046001600160a01b03163314611803576040805162461bcd60e51b815260206004820152600a60248201526941646d696e206f6e6c7960b01b604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205460ff16611862576040805162461bcd60e51b815260206004820152600f60248201526e3737ba1030903232bb32b637b832b960891b604482015290519081900360640190fd5b6001600160a01b038116600081815260026020526040808220805460ff19169055517f110a48e3e347ae018d4d40446e4e917b416f912dec489da19b4507bb9bb18cd49190a250565b60075481565b60005460ff16156118ff576040805162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b6000805460ff196001600160a01b03909316620100000262010000600160b01b031990911617919091166001179055565b600080546201000090046001600160a01b03163314611983576040805162461bcd60e51b815260206004820152600a60248201526941646d696e206f6e6c7960b01b604482015290519081900360640190fd5b826119d5576040805162461bcd60e51b815260206004820152601d60248201527f6576656e745369676e6174757265206d757374206e6f7420656d707479000000604482015290519081900360640190fd5b6000826001600160801b031611611a33576040805162461bcd60e51b815260206004820152601f60248201527f636865636b20696e646578206d7573742067726561746572207468656e203000604482015290519081900360640190fd5b6000838152600a602090815260408083206001600160801b0386168452909152902054611a98576040805162461bcd60e51b815260206004820152600e60248201526d1c9d5b19481b9bdd08195e1a5cdd60921b604482015290519081900360640190fd5b6000838152600a602090815260408083206001600160801b038616845290915281208054919055611ac7612059565b60096001830381548110611ad757fe5b60009182526020918290206040805160608101825260029093029091018054835260018101546001600160801b0381169484019490945291929083019060ff600160801b909104166003811115611b2a57fe5b6003811115611b3557fe5b9052506009549091508214611c6357611b4c612059565b600980546000198101908110611b5e57fe5b60009182526020918290206040805160608101825260029093029091018054835260018101546001600160801b0381169484019490945291929083019060ff600160801b909104166003811115611bb157fe5b6003811115611bbc57fe5b8152505090508060096001850381548110611bd357fe5b6000918252602091829020835160029290920201908155908201516001820180546001600160801b0319166001600160801b03909216919091178082556040840151919060ff60801b1916600160801b836003811115611c2f57fe5b02179055505081516000908152600a60209081526040808320948201516001600160801b0316835293905291909120839055505b6009805480611c6e57fe5b60008281526020808220600260001990940193840201918255600191909101805470ffffffffffffffffffffffffffffffffff19169055915581518282015160408085015190516001600160801b038316815292937f89fdef5ae498cf51728b26200045df6c8a41d44fee8191778fa2bcb855a725de93908101826003811115611cf457fe5b81526020019250505060405180910390a250504360085550600192915050565b6000546201000090046001600160a01b03163314611d66576040805162461bcd60e51b815260206004820152600a60248201526941646d696e206f6e6c7960b01b604482015290519081900360640190fd5b600054610100900460ff1615611db5576040805162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b604482015290519081900360640190fd5b6000805461ff0019166101001781556040516001917f733a7f99819dc7466bff56e7c0b6753b43b750a692f2a5bb4fe373815a0c784591a2565b6000546201000090046001600160a01b031681565b6001546001600160a01b03163314611e54576040805162461bcd60e51b815260206004820152600e60248201526d4e65772061646d696e206f6e6c7960901b604482015290519081900360640190fd5b600180546000805462010000600160b01b0319166001600160a01b0380841662010000908102929092178084556001600160a01b03199094169094556040519204909216917f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c91a2565b60085481565b6001600160a01b03821660009081526020849052604081208054919055845460001991820191018114611f9457845485906000198101908110611f0357fe5b9060005260206000200160009054906101000a90046001600160a01b0316858281548110611f2d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600101846000878481548110611f6e57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b84805480611f9e57fe5b600082815260209020810160001990810180546001600160a01b03191690550190556040516001600160a01b038416907f91b762fba034b39c8b14c1e6463a15b1f4c211dcd0023f7fa2f4ae2928dfc44d90849080826002811115611fff57fe5b815260200191505060405180910390a25050505050565b82546001810184556000848152602080822090920180546001600160a01b039094166001600160a01b031990941684179055935491845291909152604090912055565b6040805160608101825260008082526020820181905290918201529056fe6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b06e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7afa264697066735822122009f0ff6f52d3a0516e121ef0f14d29cd49d5d29cde3e6a90ccb20cea35bc298764736f6c634300060c0033"
    },
    "initialize validator account": {
      "balance": "0x14adf4b7320335000000000"
    }
  },
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
  1. Modify the InitValAddress in consensus/dpos/systemcontract/initialize_config.go
// using for Validators contract's initialize
var (
	InitValAddress = common.HexToAddress("initialize validator account")
	InitRate       = uint8(70)
	InitDeposit    = new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1))
)

Re-compile

cd /path/to/dxc
make geth

The compiled geth executable file is under the /path/to/dxc/build/bin path.

Create genesis block

./build/bin/geth --datadir ./build/bin/data init ./build/bin/genesis.json

Run

./build/bin/geth --datadir ./build/bin/data --allow-insecure-unlock --unlock "initialize validator"  --password ./build/bin/password.txt --mine --syncmode full --gcmode archive --verbosity 3 2>&1 | tee ./build/bin/data/system.log

Follow Us

Website:https://dxchain.com/

Telegram (EN): https://t.me/dxchain

Telegram (CN): https://t.me/DxChainGroup_CN

Discord: https://discord.gg/XbPwmErhDX

DX Explorer: https://www.dxscan.io/

DxFarm: https://bsc.dxchain.com/home

DxChain Wiki: https://dxchain.gitbook.io/dxchain/