My Name Tag:
Not Available, login to update
ContractCreator:
GENESIS at txn GENESIS_47649022380d182da8010ae5d257fea4227b21ff
Txn Hash | Method |
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
GENESIS_47649022380d182da8010ae5d257fea4227b21ff | 0x60806040 | 0 | 1169 days 15 hrs ago | GENESIS | IN | Create: FlexibleStorage | 0 ETH | 0 |
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Source Code Verified (Genesis Bytecode Match Only)
Contract Name:
FlexibleStorage
Compiler Version
v0.5.16
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Optimistic.Etherscan.io on 2021-08-25 */ /* ____ __ __ __ _ / __/__ __ ___ / /_ / / ___ / /_ (_)__ __ _\ \ / // // _ \/ __// _ \/ -_)/ __// / \ \ / /___/ \_, //_//_/\__//_//_/\__/ \__//_/ /_\_\ /___/ * Synthetix: FlexibleStorage.sol * * Latest source (may be newer): https://github.com/Synthetixio/synthetix/blob/master/contracts/FlexibleStorage.sol * Docs: https://docs.synthetix.io/contracts/FlexibleStorage * * Contract Dependencies: * - ContractStorage * - IFlexibleStorage * Libraries: (none) * * MIT License * =========== * * Copyright (c) 2021 Synthetix * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE */ pragma solidity >=0.4.24; // https://docs.synthetix.io/contracts/source/interfaces/iaddressresolver interface IAddressResolver { function getAddress(bytes32 name) external view returns (address); function getSynth(bytes32 key) external view returns (address); function requireAndGetAddress(bytes32 name, string calldata reason) external view returns (address); } // Internal References // https://docs.synthetix.io/contracts/source/contracts/contractstorage contract ContractStorage { IAddressResolver public resolverProxy; mapping(bytes32 => bytes32) public hashes; constructor(address _resolver) internal { // ReadProxyAddressResolver resolverProxy = IAddressResolver(_resolver); } /* ========== INTERNAL FUNCTIONS ========== */ function _memoizeHash(bytes32 contractName) internal returns (bytes32) { bytes32 hashKey = hashes[contractName]; if (hashKey == bytes32(0)) { // set to unique hash at the time of creation hashKey = keccak256(abi.encodePacked(msg.sender, contractName, block.number)); hashes[contractName] = hashKey; } return hashKey; } /* ========== VIEWS ========== */ /* ========== RESTRICTED FUNCTIONS ========== */ function migrateContractKey( bytes32 fromContractName, bytes32 toContractName, bool removeAccessFromPreviousContract ) external onlyContract(fromContractName) { require(hashes[fromContractName] != bytes32(0), "Cannot migrate empty contract"); hashes[toContractName] = hashes[fromContractName]; if (removeAccessFromPreviousContract) { delete hashes[fromContractName]; } emit KeyMigrated(fromContractName, toContractName, removeAccessFromPreviousContract); } /* ========== MODIFIERS ========== */ modifier onlyContract(bytes32 contractName) { address callingContract = resolverProxy.requireAndGetAddress(contractName, "Cannot find contract in Address Resolver"); require(callingContract == msg.sender, "Can only be invoked by the configured contract"); _; } /* ========== EVENTS ========== */ event KeyMigrated(bytes32 fromContractName, bytes32 toContractName, bool removeAccessFromPreviousContract); } // https://docs.synthetix.io/contracts/source/interfaces/iflexiblestorage interface IFlexibleStorage { // Views function getUIntValue(bytes32 contractName, bytes32 record) external view returns (uint); function getUIntValues(bytes32 contractName, bytes32[] calldata records) external view returns (uint[] memory); function getIntValue(bytes32 contractName, bytes32 record) external view returns (int); function getIntValues(bytes32 contractName, bytes32[] calldata records) external view returns (int[] memory); function getAddressValue(bytes32 contractName, bytes32 record) external view returns (address); function getAddressValues(bytes32 contractName, bytes32[] calldata records) external view returns (address[] memory); function getBoolValue(bytes32 contractName, bytes32 record) external view returns (bool); function getBoolValues(bytes32 contractName, bytes32[] calldata records) external view returns (bool[] memory); function getBytes32Value(bytes32 contractName, bytes32 record) external view returns (bytes32); function getBytes32Values(bytes32 contractName, bytes32[] calldata records) external view returns (bytes32[] memory); // Mutative functions function deleteUIntValue(bytes32 contractName, bytes32 record) external; function deleteIntValue(bytes32 contractName, bytes32 record) external; function deleteAddressValue(bytes32 contractName, bytes32 record) external; function deleteBoolValue(bytes32 contractName, bytes32 record) external; function deleteBytes32Value(bytes32 contractName, bytes32 record) external; function setUIntValue( bytes32 contractName, bytes32 record, uint value ) external; function setUIntValues( bytes32 contractName, bytes32[] calldata records, uint[] calldata values ) external; function setIntValue( bytes32 contractName, bytes32 record, int value ) external; function setIntValues( bytes32 contractName, bytes32[] calldata records, int[] calldata values ) external; function setAddressValue( bytes32 contractName, bytes32 record, address value ) external; function setAddressValues( bytes32 contractName, bytes32[] calldata records, address[] calldata values ) external; function setBoolValue( bytes32 contractName, bytes32 record, bool value ) external; function setBoolValues( bytes32 contractName, bytes32[] calldata records, bool[] calldata values ) external; function setBytes32Value( bytes32 contractName, bytes32 record, bytes32 value ) external; function setBytes32Values( bytes32 contractName, bytes32[] calldata records, bytes32[] calldata values ) external; } // Inheritance // Internal References // https://docs.synthetix.io/contracts/source/contracts/flexiblestorage contract FlexibleStorage is ContractStorage, IFlexibleStorage { mapping(bytes32 => mapping(bytes32 => uint)) internal uintStorage; mapping(bytes32 => mapping(bytes32 => int)) internal intStorage; mapping(bytes32 => mapping(bytes32 => address)) internal addressStorage; mapping(bytes32 => mapping(bytes32 => bool)) internal boolStorage; mapping(bytes32 => mapping(bytes32 => bytes32)) internal bytes32Storage; constructor(address _resolver) public ContractStorage(_resolver) {} /* ========== INTERNAL FUNCTIONS ========== */ function _setUIntValue( bytes32 contractName, bytes32 record, uint value ) internal { uintStorage[_memoizeHash(contractName)][record] = value; emit ValueSetUInt(contractName, record, value); } function _setIntValue( bytes32 contractName, bytes32 record, int value ) internal { intStorage[_memoizeHash(contractName)][record] = value; emit ValueSetInt(contractName, record, value); } function _setAddressValue( bytes32 contractName, bytes32 record, address value ) internal { addressStorage[_memoizeHash(contractName)][record] = value; emit ValueSetAddress(contractName, record, value); } function _setBoolValue( bytes32 contractName, bytes32 record, bool value ) internal { boolStorage[_memoizeHash(contractName)][record] = value; emit ValueSetBool(contractName, record, value); } function _setBytes32Value( bytes32 contractName, bytes32 record, bytes32 value ) internal { bytes32Storage[_memoizeHash(contractName)][record] = value; emit ValueSetBytes32(contractName, record, value); } /* ========== VIEWS ========== */ function getUIntValue(bytes32 contractName, bytes32 record) external view returns (uint) { return uintStorage[hashes[contractName]][record]; } function getUIntValues(bytes32 contractName, bytes32[] calldata records) external view returns (uint[] memory) { uint[] memory results = new uint[](records.length); mapping(bytes32 => uint) storage data = uintStorage[hashes[contractName]]; for (uint i = 0; i < records.length; i++) { results[i] = data[records[i]]; } return results; } function getIntValue(bytes32 contractName, bytes32 record) external view returns (int) { return intStorage[hashes[contractName]][record]; } function getIntValues(bytes32 contractName, bytes32[] calldata records) external view returns (int[] memory) { int[] memory results = new int[](records.length); mapping(bytes32 => int) storage data = intStorage[hashes[contractName]]; for (uint i = 0; i < records.length; i++) { results[i] = data[records[i]]; } return results; } function getAddressValue(bytes32 contractName, bytes32 record) external view returns (address) { return addressStorage[hashes[contractName]][record]; } function getAddressValues(bytes32 contractName, bytes32[] calldata records) external view returns (address[] memory) { address[] memory results = new address[](records.length); mapping(bytes32 => address) storage data = addressStorage[hashes[contractName]]; for (uint i = 0; i < records.length; i++) { results[i] = data[records[i]]; } return results; } function getBoolValue(bytes32 contractName, bytes32 record) external view returns (bool) { return boolStorage[hashes[contractName]][record]; } function getBoolValues(bytes32 contractName, bytes32[] calldata records) external view returns (bool[] memory) { bool[] memory results = new bool[](records.length); mapping(bytes32 => bool) storage data = boolStorage[hashes[contractName]]; for (uint i = 0; i < records.length; i++) { results[i] = data[records[i]]; } return results; } function getBytes32Value(bytes32 contractName, bytes32 record) external view returns (bytes32) { return bytes32Storage[hashes[contractName]][record]; } function getBytes32Values(bytes32 contractName, bytes32[] calldata records) external view returns (bytes32[] memory) { bytes32[] memory results = new bytes32[](records.length); mapping(bytes32 => bytes32) storage data = bytes32Storage[hashes[contractName]]; for (uint i = 0; i < records.length; i++) { results[i] = data[records[i]]; } return results; } /* ========== RESTRICTED FUNCTIONS ========== */ function setUIntValue( bytes32 contractName, bytes32 record, uint value ) external onlyContract(contractName) { _setUIntValue(contractName, record, value); } function setUIntValues( bytes32 contractName, bytes32[] calldata records, uint[] calldata values ) external onlyContract(contractName) { require(records.length == values.length, "Input lengths must match"); for (uint i = 0; i < records.length; i++) { _setUIntValue(contractName, records[i], values[i]); } } function deleteUIntValue(bytes32 contractName, bytes32 record) external onlyContract(contractName) { uint value = uintStorage[hashes[contractName]][record]; emit ValueDeletedUInt(contractName, record, value); delete uintStorage[hashes[contractName]][record]; } function setIntValue( bytes32 contractName, bytes32 record, int value ) external onlyContract(contractName) { _setIntValue(contractName, record, value); } function setIntValues( bytes32 contractName, bytes32[] calldata records, int[] calldata values ) external onlyContract(contractName) { require(records.length == values.length, "Input lengths must match"); for (uint i = 0; i < records.length; i++) { _setIntValue(contractName, records[i], values[i]); } } function deleteIntValue(bytes32 contractName, bytes32 record) external onlyContract(contractName) { int value = intStorage[hashes[contractName]][record]; emit ValueDeletedInt(contractName, record, value); delete intStorage[hashes[contractName]][record]; } function setAddressValue( bytes32 contractName, bytes32 record, address value ) external onlyContract(contractName) { _setAddressValue(contractName, record, value); } function setAddressValues( bytes32 contractName, bytes32[] calldata records, address[] calldata values ) external onlyContract(contractName) { require(records.length == values.length, "Input lengths must match"); for (uint i = 0; i < records.length; i++) { _setAddressValue(contractName, records[i], values[i]); } } function deleteAddressValue(bytes32 contractName, bytes32 record) external onlyContract(contractName) { address value = addressStorage[hashes[contractName]][record]; emit ValueDeletedAddress(contractName, record, value); delete addressStorage[hashes[contractName]][record]; } function setBoolValue( bytes32 contractName, bytes32 record, bool value ) external onlyContract(contractName) { _setBoolValue(contractName, record, value); } function setBoolValues( bytes32 contractName, bytes32[] calldata records, bool[] calldata values ) external onlyContract(contractName) { require(records.length == values.length, "Input lengths must match"); for (uint i = 0; i < records.length; i++) { _setBoolValue(contractName, records[i], values[i]); } } function deleteBoolValue(bytes32 contractName, bytes32 record) external onlyContract(contractName) { bool value = boolStorage[hashes[contractName]][record]; emit ValueDeletedBool(contractName, record, value); delete boolStorage[hashes[contractName]][record]; } function setBytes32Value( bytes32 contractName, bytes32 record, bytes32 value ) external onlyContract(contractName) { _setBytes32Value(contractName, record, value); } function setBytes32Values( bytes32 contractName, bytes32[] calldata records, bytes32[] calldata values ) external onlyContract(contractName) { require(records.length == values.length, "Input lengths must match"); for (uint i = 0; i < records.length; i++) { _setBytes32Value(contractName, records[i], values[i]); } } function deleteBytes32Value(bytes32 contractName, bytes32 record) external onlyContract(contractName) { bytes32 value = bytes32Storage[hashes[contractName]][record]; emit ValueDeletedBytes32(contractName, record, value); delete bytes32Storage[hashes[contractName]][record]; } /* ========== EVENTS ========== */ event ValueSetUInt(bytes32 contractName, bytes32 record, uint value); event ValueDeletedUInt(bytes32 contractName, bytes32 record, uint value); event ValueSetInt(bytes32 contractName, bytes32 record, int value); event ValueDeletedInt(bytes32 contractName, bytes32 record, int value); event ValueSetAddress(bytes32 contractName, bytes32 record, address value); event ValueDeletedAddress(bytes32 contractName, bytes32 record, address value); event ValueSetBool(bytes32 contractName, bytes32 record, bool value); event ValueDeletedBool(bytes32 contractName, bytes32 record, bool value); event ValueSetBytes32(bytes32 contractName, bytes32 record, bytes32 value); event ValueDeletedBytes32(bytes32 contractName, bytes32 record, bytes32 value); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_resolver","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"fromContractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"toContractName","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"removeAccessFromPreviousContract","type":"bool"}],"name":"KeyMigrated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"record","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ValueDeletedAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"record","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"ValueDeletedBool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"record","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"ValueDeletedBytes32","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"record","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"value","type":"int256"}],"name":"ValueDeletedInt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"record","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ValueDeletedUInt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"record","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ValueSetAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"record","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"ValueSetBool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"record","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"ValueSetBytes32","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"record","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"value","type":"int256"}],"name":"ValueSetInt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"record","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ValueSetUInt","type":"event"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"}],"name":"deleteAddressValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"}],"name":"deleteBoolValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"}],"name":"deleteBytes32Value","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"}],"name":"deleteIntValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"}],"name":"deleteUIntValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"}],"name":"getAddressValue","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32[]","name":"records","type":"bytes32[]"}],"name":"getAddressValues","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"}],"name":"getBoolValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32[]","name":"records","type":"bytes32[]"}],"name":"getBoolValues","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"}],"name":"getBytes32Value","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32[]","name":"records","type":"bytes32[]"}],"name":"getBytes32Values","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"}],"name":"getIntValue","outputs":[{"internalType":"int256","name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32[]","name":"records","type":"bytes32[]"}],"name":"getIntValues","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"}],"name":"getUIntValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32[]","name":"records","type":"bytes32[]"}],"name":"getUIntValues","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"hashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"fromContractName","type":"bytes32"},{"internalType":"bytes32","name":"toContractName","type":"bytes32"},{"internalType":"bool","name":"removeAccessFromPreviousContract","type":"bool"}],"name":"migrateContractKey","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"resolverProxy","outputs":[{"internalType":"contract IAddressResolver","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"},{"internalType":"address","name":"value","type":"address"}],"name":"setAddressValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32[]","name":"records","type":"bytes32[]"},{"internalType":"address[]","name":"values","type":"address[]"}],"name":"setAddressValues","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBoolValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32[]","name":"records","type":"bytes32[]"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"name":"setBoolValues","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"setBytes32Value","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32[]","name":"records","type":"bytes32[]"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"name":"setBytes32Values","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"},{"internalType":"int256","name":"value","type":"int256"}],"name":"setIntValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32[]","name":"records","type":"bytes32[]"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"name":"setIntValues","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32","name":"record","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setUIntValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"bytes32[]","name":"records","type":"bytes32[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"setUIntValues","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
8060405234801561001957600080610016613231565b50505b50600436106101cc5760003560e01c80638ca0adaf11610102578063c89eb562116100a0578063d994502d1161007a578063d994502d14610c05578063f7833c5d14610c45578063f9c39d2f14610c71578063fdfc4c1314610d75576101cc565b8063c89eb56214610aa9578063d658d2e914610bad578063d71a9b0114610bd3576101cc565b8063ab15985d116100dc578063ab15985d14610847578063b67fa7ed1461094b578063c13a2b0c146109e4578063c4f610ed14610a7d576101cc565b80638ca0adaf146107565780638f6b95a3146107ef5780639ee5955a1461081b576101cc565b806335ab27081161016f5780634dca0978116101495780634dca09781461062a5780635bda91e2146106655780636a59e495146106995780638408a5e5146106bd576101cc565b806335ab2708146104c65780633bd6ad89146104f25780633f28a6fc146105f6576101cc565b80631625e3ef116101ab5780631625e3ef146103fe57806318f662ed1461042a5780631d5b277f1461045657806323257c2b14610488576101cc565b80624b62d6146101da57806303cdc0171461020e578063142a391e14610312575b6000806101d7613231565b50505b61020c600480360360608110156101f9576000806101f6613231565b50505b5080359060208101359060400135610da1565b005b61020c6004803603606081101561022d5760008061022a613231565b50505b81359190810190604081016020820135600160201b81111561025757600080610254613231565b50505b8201836020820111156102725760008061026f613231565b50505b803590602001918460208302840111600160201b8311171561029c57600080610299613231565b50505b919390929091602081019035600160201b8111156102c2576000806102bf613231565b50505b8201836020820111156102dd576000806102da613231565b50505b803590602001918460208302840111600160201b8311171561030757600080610304613231565b50505b509092509050610ef3565b6103ab600480360360408110156103315760008061032e613231565b50505b81359190810190604081016020820135600160201b81111561035b57600080610358613231565b50505b82018360208201111561037657600080610373613231565b50505b803590602001918460208302840111600160201b831117156103a05760008061039d613231565b50505b5090925090506110c9565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103ea5780820151838201526020016103d2565b505050509050019250505060405180910390f35b61020c6004803603604081101561041d5760008061041a613231565b50505b5080359060200135611184565b61020c6004803603604081101561044957600080610446613231565b50505b50803590602001356113b3565b61020c6004803603606081101561047557600080610472613231565b50505b50803590602081013590604001356115bb565b6104b4600480360360408110156104a7576000806104a4613231565b50505b5080359060200135611706565b60405190815260200160405180910390f35b61020c600480360360408110156104e5576000806104e2613231565b50505b508035906020013561174d565b61020c600480360360608110156105115760008061050e613231565b50505b81359190810190604081016020820135600160201b81111561053b57600080610538613231565b50505b82018360208201111561055657600080610553613231565b50505b803590602001918460208302840111600160201b831117156105805760008061057d613231565b50505b919390929091602081019035600160201b8111156105a6576000806105a3613231565b50505b8201836020820111156105c1576000806105be613231565b50505b803590602001918460208302840111600160201b831117156105eb576000806105e8613231565b50505b50909250905061192d565b61020c6004803603606081101561061557600080610612613231565b50505b50803590602081013590604001351515611b02565b61020c6004803603606081101561064957600080610646613231565b50505b50803590602081013590604001356001600160a01b0316611c4d565b61020c6004803603606081101561068457600080610681613231565b50505b50803590602081013590604001351515611d98565b6106a1611fec565b6040516001600160a01b03909116815260200160405180910390f35b6103ab600480360360408110156106dc576000806106d9613231565b50505b81359190810190604081016020820135600160201b81111561070657600080610703613231565b50505b8201836020820111156107215760008061071e613231565b50505b803590602001918460208302840111600160201b8311171561074b57600080610748613231565b50505b50909250905061200a565b6103ab6004803603604081101561077557600080610772613231565b50505b81359190810190604081016020820135600160201b81111561079f5760008061079c613231565b50505b8201836020820111156107ba576000806107b7613231565b50505b803590602001918460208302840111600160201b831117156107e4576000806107e1613231565b50505b5090925090506120ba565b61020c6004803603604081101561080e5760008061080b613231565b50505b508035906020013561218a565b6106a16004803603604081101561083a57600080610837613231565b50505b50803590602001356123c3565b61020c6004803603606081101561086657600080610863613231565b50505b81359190810190604081016020820135600160201b8111156108905760008061088d613231565b50505b8201836020820111156108ab576000806108a8613231565b50505b803590602001918460208302840111600160201b831117156108d5576000806108d2613231565b50505b919390929091602081019035600160201b8111156108fb576000806108f8613231565b50505b82018360208201111561091657600080610913613231565b50505b803590602001918460208302840111600160201b831117156109405760008061093d613231565b50505b50909250905061241c565b6103ab6004803603604081101561096a57600080610967613231565b50505b81359190810190604081016020820135600160201b81111561099457600080610991613231565b50505b8201836020820111156109af576000806109ac613231565b50505b803590602001918460208302840111600160201b831117156109d9576000806109d6613231565b50505b5090925090506125e8565b6103ab60048036036040811015610a0357600080610a00613231565b50505b81359190810190604081016020820135600160201b811115610a2d57600080610a2a613231565b50505b820183602082011115610a4857600080610a45613231565b50505b803590602001918460208302840111600160201b83111715610a7257600080610a6f613231565b50505b509092509050612698565b6104b460048036036040811015610a9c57600080610a99613231565b50505b508035906020013561275a565b61020c60048036036060811015610ac857600080610ac5613231565b50505b81359190810190604081016020820135600160201b811115610af257600080610aef613231565b50505b820183602082011115610b0d57600080610b0a613231565b50505b803590602001918460208302840111600160201b83111715610b3757600080610b34613231565b50505b919390929091602081019035600160201b811115610b5d57600080610b5a613231565b50505b820183602082011115610b7857600080610b75613231565b50505b803590602001918460208302840111600160201b83111715610ba257600080610b9f613231565b50505b509092509050612773565b6104b460048036036020811015610bcc57600080610bc9613231565b50505b503561293f565b61020c60048036036060811015610bf257600080610bef613231565b50505b508035906020810135906040013561295a565b610c3160048036036040811015610c2457600080610c21613231565b50505b5080359060200135612aa5565b604051901515815260200160405180910390f35b6104b460048036036040811015610c6457600080610c61613231565b50505b5080359060200135612af8565b61020c60048036036060811015610c9057600080610c8d613231565b50505b81359190810190604081016020820135600160201b811115610cba57600080610cb7613231565b50505b820183602082011115610cd557600080610cd2613231565b50505b803590602001918460208302840111600160201b83111715610cff57600080610cfc613231565b50505b919390929091602081019035600160201b811115610d2557600080610d22613231565b50505b820183602082011115610d4057600080610d3d613231565b50505b803590602001918460208302840111600160201b83111715610d6a57600080610d67613231565b50505b509092509050612b11565b61020c60048036036040811015610d9457600080610d91613231565b50505b5080359060200135612cdf565b8260008080610dae61329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e60289139604001925050506020604051808303818680610e186132fc565b158015610e2d57600080610e2a613231565b50505b505a610e37613348565b5050505050158015610e56573d6000803e3d6000610e53613231565b50505b505050506040513d6020811015610e7557600080610e72613231565b50505b81019080805193505050505a610e89613433565b6001600160a01b0316816001600160a01b031614610ee15760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e913960400191505060405180910390610ede613231565b50505b610eec858585612ebf565b5050505050565b8460008080610f0061329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e60289139604001925050506020604051808303818680610f6a6132fc565b158015610f7f57600080610f7c613231565b50505b505a610f89613348565b5050505050158015610fa8573d6000803e3d6000610fa5613231565b50505b505050506040513d6020811015610fc757600080610fc4613231565b50505b81019080805193505050505a610fdb613433565b6001600160a01b0316816001600160a01b0316146110335760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e913960400191505060405180910390611030613231565b50505b84831461107d5760405162461bcd60e51b8152602060048201526018602482015260008051602061356483398151915260448201526064016040518091039061107a613231565b50505b60005b858110156110bf576110b78888888481811061109857fe5b905060200201358787858181106110ab57fe5b90506020020135612f43565b600101611080565b5050505050505050565b606080826040519080825280602002602001820160405280156110f6578160200160208202803883390190505b50600086815260016020529091506003816040812061111361329c565b8152602001908152602001600020905060005b848110156111795781600087878481811061113d57fe5b90506020020135815260200190815260200160002061115a61329c565b83828151811061116657fe5b6020908102919091010152600101611126565b509095945050505050565b816000808061119161329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e602891396040019250505060206040518083038186806111fb6132fc565b1580156112105760008061120d613231565b50505b505a61121a613348565b5050505050158015611239573d6000803e3d6000611236613231565b50505b505050506040513d602081101561125857600080611255613231565b50505b81019080805193505050505a61126c613433565b6001600160a01b0316816001600160a01b0316146112c45760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e9139604001915050604051809103906112c1613231565b50505b60008481526001602052600581604081206112dd61329c565b815260200190815260200160002060008581526020919091526040902060009061130561329c565b906101000a900460ff1690507f321123223c2c7bffd7484ae8fb80c6eb45aa5537df0a621c47833ab9376a4a9c858583604051928352602083019190915215156040808301919091526060909101905180910390a1600085815260016020526005906040812061137361329c565b815260200190815260200160002060008581526020919091526040902060018161139b61329c565b9060ff021916906113aa613479565b50505050505050565b81600080806113c061329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e6028913960400192505050602060405180830381868061142a6132fc565b15801561143f5760008061143c613231565b50505b505a611449613348565b5050505050158015611468573d6000803e3d6000611465613231565b50505b505050506040513d602081101561148757600080611484613231565b50505b81019080805193505050505a61149b613433565b6001600160a01b0316816001600160a01b0316146114f35760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e9139604001915050604051809103906114f0613231565b50505b600084815260016020526002816040812061150c61329c565b815260200190815260200160002060008581526020919091526040902061153161329c565b90507f8a6b612c1a1e056bc504f34fe56106a878fca2d1a50be35360d02ac39d4d466285858360405180848152602001838152602001828152602001935050505060405180910390a1600085815260016020526002906040812061159361329c565b81526020019081526020016000206000858152602091909152604090206000906113aa613479565b82600080806115c861329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e602891396040019250505060206040518083038186806116326132fc565b15801561164757600080611644613231565b50505b505a611651613348565b5050505050158015611670573d6000803e3d600061166d613231565b50505b505050506040513d602081101561168f5760008061168c613231565b50505b81019080805193505050505a6116a3613433565b6001600160a01b0316816001600160a01b0316146116fb5760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e9139604001915050604051809103906116f8613231565b50505b610eec858585612f43565b600082815260016020526002816040812061171f61329c565b815260200190815260200160002060008381526020919091526040902061174461329c565b90505b92915050565b816000808061175a61329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e602891396040019250505060206040518083038186806117c46132fc565b1580156117d9576000806117d6613231565b50505b505a6117e3613348565b5050505050158015611802573d6000803e3d60006117ff613231565b50505b505050506040513d60208110156118215760008061181e613231565b50505b81019080805193505050505a611835613433565b6001600160a01b0316816001600160a01b03161461188d5760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e91396040019150506040518091039061188a613231565b50505b60008481526001602052600681604081206118a661329c565b81526020019081526020016000206000858152602091909152604090206118cb61329c565b90507f1f751825a531bf2a176e42d5cb792bb7228163cf53e36b033509ccbe869cfd9385858360405180848152602001838152602001828152602001935050505060405180910390a1600085815260016020526006906040812061159361329c565b846000808061193a61329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e602891396040019250505060206040518083038186806119a46132fc565b1580156119b9576000806119b6613231565b50505b505a6119c3613348565b50505050501580156119e2573d6000803e3d60006119df613231565b50505b505050506040513d6020811015611a01576000806119fe613231565b50505b81019080805193505050505a611a15613433565b6001600160a01b0316816001600160a01b031614611a6d5760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e913960400191505060405180910390611a6a613231565b50505b848314611ab75760405162461bcd60e51b81526020600482015260186024820152600080516020613564833981519152604482015260640160405180910390611ab4613231565b50505b60005b858110156110bf57611afa88888884818110611ad257fe5b90506020020135878785818110611ae557fe5b905060200201356001600160a01b0316612fc7565b600101611aba565b8260008080611b0f61329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e60289139604001925050506020604051808303818680611b796132fc565b158015611b8e57600080611b8b613231565b50505b505a611b98613348565b5050505050158015611bb7573d6000803e3d6000611bb4613231565b50505b505050506040513d6020811015611bd657600080611bd3613231565b50505b81019080805193505050505a611bea613433565b6001600160a01b0316816001600160a01b031614611c425760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e913960400191505060405180910390611c3f613231565b50505b610eec858585613077565b8260008080611c5a61329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e60289139604001925050506020604051808303818680611cc46132fc565b158015611cd957600080611cd6613231565b50505b505a611ce3613348565b5050505050158015611d02573d6000803e3d6000611cff613231565b50505b505050506040513d6020811015611d2157600080611d1e613231565b50505b81019080805193505050505a611d35613433565b6001600160a01b0316816001600160a01b031614611d8d5760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e913960400191505060405180910390611d8a613231565b50505b610eec858585612fc7565b8260008080611da561329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e60289139604001925050506020604051808303818680611e0f6132fc565b158015611e2457600080611e21613231565b50505b505a611e2e613348565b5050505050158015611e4d573d6000803e3d6000611e4a613231565b50505b505050506040513d6020811015611e6c57600080611e69613231565b50505b81019080805193505050505a611e80613433565b6001600160a01b0316816001600160a01b031614611ed85760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e913960400191505060405180910390611ed5613231565b50505b6000858152600160205260408120611eee61329c565b1415611f495760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74206d69677261746520656d70747920636f6e7472616374000000604482015260640160405180910390611f46613231565b50505b6000858152600160205260409020611f5f61329c565b60008581526001602052604090208190611f77613479565b5050508215611f9c576000858152600160205260409020600090611f99613479565b50505b7fa3db9c909daa141b61562c797dae4dc4b3d7751686068c98111db87b2a8c374c858585604051928352602083019190915215156040808301919091526060909101905180910390a15050505050565b600080611ff761329c565b906101000a90046001600160a01b031681565b60608082604051908082528060200260200182016040528015612037578160200160208202803883390190505b50600086815260016020529091506006816040812061205461329c565b8152602001908152602001600020905060005b848110156111795781600087878481811061207e57fe5b90506020020135815260200190815260200160002061209b61329c565b8382815181106120a757fe5b6020908102919091010152600101612067565b606080826040519080825280602002602001820160405280156120e7578160200160208202803883390190505b50600086815260016020529091506004816040812061210461329c565b8152602001908152602001600020905060005b848110156111795781600087878481811061212e57fe5b90506020020135815260200190815260200160002060009061214e61329c565b906101000a90046001600160a01b031683828151811061216a57fe5b6001600160a01b0390921660209283029190910190910152600101612117565b816000808061219761329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e602891396040019250505060206040518083038186806122016132fc565b15801561221657600080612213613231565b50505b505a612220613348565b505050505015801561223f573d6000803e3d600061223c613231565b50505b505050506040513d602081101561225e5760008061225b613231565b50505b81019080805193505050505a612272613433565b6001600160a01b0316816001600160a01b0316146122ca5760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e9139604001915050604051809103906122c7613231565b50505b60008481526001602052600481604081206122e361329c565b815260200190815260200160002060008581526020919091526040902060009061230b61329c565b906101000a90046001600160a01b031690507fec1140277b8f20820dc76b92216489238a207d5f22c964099303820fbd2bdf6685858360405192835260208301919091526001600160a01b03166040808301919091526060909101905180910390a1600085815260016020526004906040812061238661329c565b81526020019081526020016000206000858152602091909152604090206001816123ae61329c565b906001600160a01b03021916906113aa613479565b60008281526001602052600481604081206123dc61329c565b815260200190815260200160002060008381526020919091526040902060009061240461329c565b906101000a90046001600160a01b0316905092915050565b846000808061242961329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e602891396040019250505060206040518083038186806124936132fc565b1580156124a8576000806124a5613231565b50505b505a6124b2613348565b50505050501580156124d1573d6000803e3d60006124ce613231565b50505b505050506040513d60208110156124f0576000806124ed613231565b50505b81019080805193505050505a612504613433565b6001600160a01b0316816001600160a01b03161461255c5760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e913960400191505060405180910390612559613231565b50505b8483146125a65760405162461bcd60e51b815260206004820152601860248201526000805160206135648339815191526044820152606401604051809103906125a3613231565b50505b60005b858110156110bf576125e0888888848181106125c157fe5b905060200201358787858181106125d457fe5b90506020020135613113565b6001016125a9565b60608082604051908082528060200260200182016040528015612615578160200160208202803883390190505b50600086815260016020529091506002816040812061263261329c565b8152602001908152602001600020905060005b848110156111795781600087878481811061265c57fe5b90506020020135815260200190815260200160002061267961329c565b83828151811061268557fe5b6020908102919091010152600101612645565b606080826040519080825280602002602001820160405280156126c5578160200160208202803883390190505b5060008681526001602052909150600581604081206126e261329c565b8152602001908152602001600020905060005b848110156111795781600087878481811061270c57fe5b90506020020135815260200190815260200160002060009061272c61329c565b906101000a900460ff1683828151811061274257fe5b911515602092830291909101909101526001016126f5565b600082815260016020526003816040812061171f61329c565b846000808061278061329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e602891396040019250505060206040518083038186806127ea6132fc565b1580156127ff576000806127fc613231565b50505b505a612809613348565b5050505050158015612828573d6000803e3d6000612825613231565b50505b505050506040513d602081101561284757600080612844613231565b50505b81019080805193505050505a61285b613433565b6001600160a01b0316816001600160a01b0316146128b35760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e9139604001915050604051809103906128b0613231565b50505b8483146128fd5760405162461bcd60e51b815260206004820152601860248201526000805160206135648339815191526044820152606401604051809103906128fa613231565b50505b60005b858110156110bf576129378888888481811061291857fe5b9050602002013587878581811061292b57fe5b90506020020135612ebf565b600101612900565b6001602052806000526040600020905061295761329c565b81565b826000808061296761329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e602891396040019250505060206040518083038186806129d16132fc565b1580156129e6576000806129e3613231565b50505b505a6129f0613348565b5050505050158015612a0f573d6000803e3d6000612a0c613231565b50505b505050506040513d6020811015612a2e57600080612a2b613231565b50505b81019080805193505050505a612a42613433565b6001600160a01b0316816001600160a01b031614612a9a5760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e913960400191505060405180910390612a97613231565b50505b610eec858585613113565b6000828152600160205260058160408120612abe61329c565b8152602001908152602001600020600083815260209190915260409020600090612ae661329c565b906101000a900460ff16905092915050565b600082815260016020526006816040812061171f61329c565b8460008080612b1e61329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e60289139604001925050506020604051808303818680612b886132fc565b158015612b9d57600080612b9a613231565b50505b505a612ba7613348565b5050505050158015612bc6573d6000803e3d6000612bc3613231565b50505b505050506040513d6020811015612be557600080612be2613231565b50505b81019080805193505050505a612bf9613433565b6001600160a01b0316816001600160a01b031614612c515760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e913960400191505060405180910390612c4e613231565b50505b848314612c9b5760405162461bcd60e51b81526020600482015260186024820152600080516020613564833981519152604482015260640160405180910390612c98613231565b50505b60005b858110156110bf57612cd788888884818110612cb657fe5b90506020020135878785818110612cc957fe5b905060200201351515613077565b600101612c9e565b8160008080612cec61329c565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b815260040180828152602001806020018281038252602881526020018061350e60289139604001925050506020604051808303818680612d566132fc565b158015612d6b57600080612d68613231565b50505b505a612d75613348565b5050505050158015612d94573d6000803e3d6000612d91613231565b50505b505050506040513d6020811015612db357600080612db0613231565b50505b81019080805193505050505a612dc7613433565b6001600160a01b0316816001600160a01b031614612e1f5760405162461bcd60e51b815260040180806020018281038252602e815260200180613536602e913960400191505060405180910390612e1c613231565b50505b6000848152600160205260038160408120612e3861329c565b8152602001908152602001600020600085815260209190915260409020612e5d61329c565b90507f78962c711b5655608c554689ba42e4890d9e5d3f590b99842612ad39cd7ae0ae85858360405180848152602001838152602001828152602001935050505060405180910390a1600085815260016020526003906040812061159361329c565b8060066000612ecd86613197565b81526020019081526020016000206000848152602091909152604090208190612ef4613479565b5050507f961abb018d8a303304c9f1ff1f306c7493a8b68b381bbe4e9a3abf9588a9528083838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b8060026000612f5186613197565b81526020019081526020016000206000848152602091909152604090208190612f78613479565b5050507f60738523f766167cfd2310c61593dc795bc9d77de9276ed7e0c514df55e0a2c983838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b8060046000612fd586613197565b8152602001908152602001600020600084815260209190915260409020600181612ffd61329c565b816001600160a01b0302191690836001600160a01b031602179061301f613479565b5050507f524fb430ecbfd4606a947f9ae445dbf7c9703944cf928789b86f3a8aad63936583838360405192835260208301919091526001600160a01b03166040808301919091526060909101905180910390a1505050565b806005600061308586613197565b81526020019081526020016000206000848152602091909152604090206001816130ad61329c565b8160ff021916908315150217906130c2613479565b5050507f9c94ad4cfff55907724cb65340f342d3897dd884e6cd3c2d3777087191d5eb7b838383604051928352602083019190915215156040808301919091526060909101905180910390a1505050565b806003600061312186613197565b81526020019081526020016000206000848152602091909152604090208190613148613479565b5050507f0d8877f604dfe262a8ac3904781814f022156c9341af779608a2ae0beef1906c83838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b6000818152600160205280604081206131ae61329c565b905080611747575a6131be613433565b835a6131c86134c7565b60405160609390931b6bffffffffffffffffffffffff191660208401526034830191909152605482015260740160405160208183030381529060405280519060200120600084815260016020529091508190604090208190613228613479565b50505092915050565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561326957808601518282016040015260200161324e565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156132f7576000828201526020016132e0565b505050565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206132e0565b638540661f598160e01b8152613379565b8080831115611747575090919050565b8080831015611747575090919050565b836004820152846024820152606060448201528660648201526084810160005b888110156133b1578088015182820152602001613399565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af150596134068d3d613369565b8c016134128187613359565b5b828110156134275760008152602001613413565b50929c50505050505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206132e0565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206132e0565b635a98c361598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206132e056fe43616e6e6f742066696e6420636f6e747261637420696e2041646472657373205265736f6c76657243616e206f6e6c7920626520696e766f6b65642062792074686520636f6e6669677572656420636f6e7472616374496e707574206c656e67746873206d757374206d617463680000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c35760003560e01c80638ca0adaf116100f9578063c89eb56211610097578063d994502d11610071578063d994502d146109c2578063f7833c5d146109f9578063f9c39d2f14610a1c578063fdfc4c1314610ae1576101c3565b8063c89eb562146108b7578063d658d2e91461097c578063d71a9b0114610999576101c3565b8063ab15985d116100d3578063ab15985d146106e5578063b67fa7ed146107aa578063c13a2b0c1461081f578063c4f610ed14610894576101c3565b80638ca0adaf1461062a5780638f6b95a31461069f5780639ee5955a146106c2576101c3565b806335ab2708116101665780634dca0978116101405780634dca0978146105345780635bda91e2146105665780636a59e495146105915780638408a5e5146105b5576101c3565b806335ab2708146104215780633bd6ad89146104445780633f28a6fc14610509576101c3565b80631625e3ef116101a25780631625e3ef1461037d57806318f662ed146103a05780631d5b277f146103c357806323257c2b146103ec576101c3565b80624b62d6146101c857806303cdc017146101f3578063142a391e146102b8575b600080fd5b6101f1600480360360608110156101de57600080fd5b5080359060208101359060400135610b04565b005b6101f16004803603606081101561020957600080fd5b81359190810190604081016020820135600160201b81111561022a57600080fd5b82018360208201111561023c57600080fd5b803590602001918460208302840111600160201b8311171561025d57600080fd5b919390929091602081019035600160201b81111561027a57600080fd5b82018360208201111561028c57600080fd5b803590602001918460208302840111600160201b831117156102ad57600080fd5b509092509050610bf4565b61032d600480360360408110156102ce57600080fd5b81359190810190604081016020820135600160201b8111156102ef57600080fd5b82018360208201111561030157600080fd5b803590602001918460208302840111600160201b8311171561032257600080fd5b509092509050610d60565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610369578181015183820152602001610351565b505050509050019250505060405180910390f35b6101f16004803603604081101561039357600080fd5b5080359060200135610e07565b6101f1600480360360408110156103b657600080fd5b5080359060200135610f7b565b6101f1600480360360608110156103d957600080fd5b50803590602081013590604001356110e4565b61040f6004803603604081101561040257600080fd5b50803590602001356111cd565b60408051918252519081900360200190f35b6101f16004803603604081101561043757600080fd5b50803590602001356111f4565b6101f16004803603606081101561045a57600080fd5b81359190810190604081016020820135600160201b81111561047b57600080fd5b82018360208201111561048d57600080fd5b803590602001918460208302840111600160201b831117156104ae57600080fd5b919390929091602081019035600160201b8111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460208302840111600160201b831117156104fe57600080fd5b50909250905061135d565b6101f16004803603606081101561051f57600080fd5b508035906020810135906040013515156114c8565b6101f16004803603606081101561054a57600080fd5b50803590602081013590604001356001600160a01b03166115b1565b6101f16004803603606081101561057c57600080fd5b5080359060208101359060400135151561169a565b61059961184c565b604080516001600160a01b039092168252519081900360200190f35b61032d600480360360408110156105cb57600080fd5b81359190810190604081016020820135600160201b8111156105ec57600080fd5b8201836020820111156105fe57600080fd5b803590602001918460208302840111600160201b8311171561061f57600080fd5b50909250905061185b565b61032d6004803603604081101561064057600080fd5b81359190810190604081016020820135600160201b81111561066157600080fd5b82018360208201111561067357600080fd5b803590602001918460208302840111600160201b8311171561069457600080fd5b5090925090506118f7565b6101f1600480360360408110156106b557600080fd5b50803590602001356119b3565b610599600480360360408110156106d857600080fd5b5080359060200135611b32565b6101f1600480360360608110156106fb57600080fd5b81359190810190604081016020820135600160201b81111561071c57600080fd5b82018360208201111561072e57600080fd5b803590602001918460208302840111600160201b8311171561074f57600080fd5b919390929091602081019035600160201b81111561076c57600080fd5b82018360208201111561077e57600080fd5b803590602001918460208302840111600160201b8311171561079f57600080fd5b509092509050611b62565b61032d600480360360408110156107c057600080fd5b81359190810190604081016020820135600160201b8111156107e157600080fd5b8201836020820111156107f357600080fd5b803590602001918460208302840111600160201b8311171561081457600080fd5b509092509050611cc4565b61032d6004803603604081101561083557600080fd5b81359190810190604081016020820135600160201b81111561085657600080fd5b82018360208201111561086857600080fd5b803590602001918460208302840111600160201b8311171561088957600080fd5b509092509050611d60565b61040f600480360360408110156108aa57600080fd5b5080359060200135611e0e565b6101f1600480360360608110156108cd57600080fd5b81359190810190604081016020820135600160201b8111156108ee57600080fd5b82018360208201111561090057600080fd5b803590602001918460208302840111600160201b8311171561092157600080fd5b919390929091602081019035600160201b81111561093e57600080fd5b82018360208201111561095057600080fd5b803590602001918460208302840111600160201b8311171561097157600080fd5b509092509050611e35565b61040f6004803603602081101561099257600080fd5b5035611f97565b6101f1600480360360608110156109af57600080fd5b5080359060208101359060400135611fa9565b6109e5600480360360408110156109d857600080fd5b5080359060200135612092565b604080519115158252519081900360200190f35b61040f60048036036040811015610a0f57600080fd5b50803590602001356120bc565b6101f160048036036060811015610a3257600080fd5b81359190810190604081016020820135600160201b811115610a5357600080fd5b820183602082011115610a6557600080fd5b803590602001918460208302840111600160201b83111715610a8657600080fd5b919390929091602081019035600160201b811115610aa357600080fd5b820183602082011115610ab557600080fd5b803590602001918460208302840111600160201b83111715610ad657600080fd5b5090925090506120e3565b6101f160048036036040811015610af757600080fd5b5080359060200135612247565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610b6d57600080fd5b505afa158015610b81573d6000803e3d6000fd5b505050506040513d6020811015610b9757600080fd5b505190506001600160a01b0381163314610be25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed8585856123b0565b5050505050565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610c5d57600080fd5b505afa158015610c71573d6000803e3d6000fd5b505050506040513d6020811015610c8757600080fd5b505190506001600160a01b0381163314610cd25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314610d14576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657610d4e88888884818110610d2f57fe5b90506020020135878785818110610d4257fe5b90506020020135612421565b600101610d17565b5050505050505050565b60608083839050604051908082528060200260200182016040528015610d90578160200160208202803883390190505b506000868152600160209081526040808320548352600390915281209192505b84811015610dfc57816000878784818110610dc757fe5b90506020020135815260200190815260200160002054838281518110610de957fe5b6020908102919091010152600101610db0565b509095945050505050565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610e7057600080fd5b505afa158015610e84573d6000803e3d6000fd5b505050506040513d6020811015610e9a57600080fd5b505190506001600160a01b0381163314610ee55760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526005825280832086845282529182902054825187815291820186905260ff168015158284015291517f321123223c2c7bffd7484ae8fb80c6eb45aa5537df0a621c47833ab9376a4a9c9181900360600190a15050506000918252600160209081526040808420548452600582528084209284529190529020805460ff19169055565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610fe457600080fd5b505afa158015610ff8573d6000803e3d6000fd5b505050506040513d602081101561100e57600080fd5b505190506001600160a01b03811633146110595760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526002825280832086845282529182902054825187815291820186905281830181905291517f8a6b612c1a1e056bc504f34fe56106a878fca2d1a50be35360d02ac39d4d46629181900360600190a1505050600091825260016020908152604080842054845260028252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d602081101561117757600080fd5b505190506001600160a01b03811633146111c25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612421565b60009182526001602090815260408084205484526002825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561125d57600080fd5b505afa158015611271573d6000803e3d6000fd5b505050506040513d602081101561128757600080fd5b505190506001600160a01b03811633146112d25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526006825280832086845282529182902054825187815291820186905281830181905291517f1f751825a531bf2a176e42d5cb792bb7228163cf53e36b033509ccbe869cfd939181900360600190a1505050600091825260016020908152604080842054845260068252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156113c657600080fd5b505afa1580156113da573d6000803e3d6000fd5b505050506040513d60208110156113f057600080fd5b505190506001600160a01b038116331461143b5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b84831461147d576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d56576114c08888888481811061149857fe5b905060200201358787858181106114ab57fe5b905060200201356001600160a01b0316612492565b600101611480565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561153157600080fd5b505afa158015611545573d6000803e3d6000fd5b505050506040513d602081101561155b57600080fd5b505190506001600160a01b03811633146115a65760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561251b565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561161a57600080fd5b505afa15801561162e573d6000803e3d6000fd5b505050506040513d602081101561164457600080fd5b505190506001600160a01b038116331461168f5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612492565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561170357600080fd5b505afa158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b505190506001600160a01b03811633146117785760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000858152600160205260409020546117d8576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74206d69677261746520656d70747920636f6e7472616374000000604482015290519081900360640190fd5b600085815260016020526040808220548683529120558215611804576000858152600160205260408120555b60408051868152602081018690528415158183015290517fa3db9c909daa141b61562c797dae4dc4b3d7751686068c98111db87b2a8c374c9181900360600190a15050505050565b6000546001600160a01b031681565b6060808383905060405190808252806020026020018201604052801561188b578160200160208202803883390190505b506000868152600160209081526040808320548352600690915281209192505b84811015610dfc578160008787848181106118c257fe5b905060200201358152602001908152602001600020548382815181106118e457fe5b60209081029190910101526001016118ab565b60608083839050604051908082528060200260200182016040528015611927578160200160208202803883390190505b506000868152600160209081526040808320548352600490915281209192505b84811015610dfc5781600087878481811061195e57fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b031683828151811061199357fe5b6001600160a01b0390921660209283029190910190910152600101611947565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d6020811015611a4657600080fd5b505190506001600160a01b0381163314611a915760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000848152600160209081526040808320548352600482528083208684528252918290205482518781529182018690526001600160a01b031681830181905291517fec1140277b8f20820dc76b92216489238a207d5f22c964099303820fbd2bdf669181900360600190a1505050600091825260016020908152604080842054845260048252808420928452919052902080546001600160a01b0319169055565b6000918252600160209081526040808420548452600482528084209284529190529020546001600160a01b031690565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611bcb57600080fd5b505afa158015611bdf573d6000803e3d6000fd5b505050506040513d6020811015611bf557600080fd5b505190506001600160a01b0381163314611c405760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611c82576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611cbc88888884818110611c9d57fe5b90506020020135878785818110611cb057fe5b9050602002013561259a565b600101611c85565b60608083839050604051908082528060200260200182016040528015611cf4578160200160208202803883390190505b506000868152600160209081526040808320548352600290915281209192505b84811015610dfc57816000878784818110611d2b57fe5b90506020020135815260200190815260200160002054838281518110611d4d57fe5b6020908102919091010152600101611d14565b60608083839050604051908082528060200260200182016040528015611d90578160200160208202803883390190505b506000868152600160209081526040808320548352600590915281209192505b84811015610dfc57816000878784818110611dc757fe5b90506020020135815260200190815260200160002060009054906101000a900460ff16838281518110611df657fe5b91151560209283029190910190910152600101611db0565b60009182526001602090815260408084205484526003825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611e9e57600080fd5b505afa158015611eb2573d6000803e3d6000fd5b505050506040513d6020811015611ec857600080fd5b505190506001600160a01b0381163314611f135760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611f55576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611f8f88888884818110611f7057fe5b90506020020135878785818110611f8357fe5b905060200201356123b0565b600101611f58565b60016020526000908152604090205481565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561201257600080fd5b505afa158015612026573d6000803e3d6000fd5b505050506040513d602081101561203c57600080fd5b505190506001600160a01b03811633146120875760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561259a565b60009182526001602090815260408084205484526005825280842092845291905290205460ff1690565b60009182526001602090815260408084205484526006825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561214c57600080fd5b505afa158015612160573d6000803e3d6000fd5b505050506040513d602081101561217657600080fd5b505190506001600160a01b03811633146121c15760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314612203576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d565761223f8888888481811061221e57fe5b9050602002013587878581811061223157fe5b90506020020135151561251b565b600101612206565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156122b057600080fd5b505afa1580156122c4573d6000803e3d6000fd5b505050506040513d60208110156122da57600080fd5b505190506001600160a01b03811633146123255760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526003825280832086845282529182902054825187815291820186905281830181905291517f78962c711b5655608c554689ba42e4890d9e5d3f590b99842612ad39cd7ae0ae9181900360600190a1505050600091825260016020908152604080842054845260038252808420928452919052812055565b80600660006123be8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f961abb018d8a303304c9f1ff1f306c7493a8b68b381bbe4e9a3abf9588a952809181900360600190a1505050565b806002600061242f8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f60738523f766167cfd2310c61593dc795bc9d77de9276ed7e0c514df55e0a2c99181900360600190a1505050565b80600460006124a08661260b565b815260208082019290925260409081016000908120868252835281902080546001600160a01b0319166001600160a01b0394851617905580518681529182018590529183168183015290517f524fb430ecbfd4606a947f9ae445dbf7c9703944cf928789b86f3a8aad639365916060908290030190a1505050565b80600560006125298661260b565b8152602080820192909252604090810160009081208682528352819020805460ff19169315159390931790925581518581529081018490528215158183015290517f9c94ad4cfff55907724cb65340f342d3897dd884e6cd3c2d3777087191d5eb7b916060908290030190a1505050565b80600360006125a88661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f0d8877f604dfe262a8ac3904781814f022156c9341af779608a2ae0beef1906c9181900360600190a1505050565b6000818152600160205260408120548061266d5750604080513360601b60208083019190915260348201859052436054808401919091528351808403909101815260749092018352815191810191909120600085815260019092529190208190555b9291505056fe43616e6e6f742066696e6420636f6e747261637420696e2041646472657373205265736f6c76657243616e206f6e6c7920626520696e766f6b65642062792074686520636f6e6669677572656420636f6e7472616374496e707574206c656e67746873206d757374206d617463680000000000000000a265627a7a723158202a2a3d4e260aacb77fdc759d8da358d0d895da39b8739ea8b722a9a4fc1b630c64736f6c63430005100032
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.