UNPKG

@animoca/ethereum-contracts-assets

Version:
755 lines 73.2 kB
{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC1155InventoryMock",
  "sourceName": "contracts/token/ERC1155/mocks/ERC1155InventoryMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "universalForwarder",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "collectionMaskLength",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "_approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "baseMetadataURI",
          "type": "string"
        }
      ],
      "name": "BaseMetadataURISet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "collectionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "bool",
          "name": "fungible",
          "type": "bool"
        }
      ],
      "name": "CollectionCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "MinterAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "MinterRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "_ids",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "_values",
          "type": "uint256[]"
        }
      ],
      "name": "TransferBatch",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "TransferSingle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "_value",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "_id",
          "type": "uint256"
        }
      ],
      "name": "URI",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "addMinter",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "owners",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        }
      ],
      "name": "balanceOfBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "baseMetadataURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "nftId",
          "type": "uint256"
        }
      ],
      "name": "collectionOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "collectionId",
          "type": "uint256"
        }
      ],
      "name": "createCollection",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "collectionId",
          "type": "uint256"
        }
      ],
      "name": "creator",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenOwner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "isFungible",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isMinter",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forwarder",
          "type": "address"
        }
      ],
      "name": "isTrustedForwarder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "ret",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "nftId",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC20s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "address[]",
          "name": "contracts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC721s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceMinter",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "baseMetadataURI_",
          "type": "string"
        }
      ],
      "name": "setBaseMetadataURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "uri",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60e06040523480156200001157600080fd5b506040516200390e3803806200390e833981810160405260608110156200003757600080fd5b5080516020820151604092830151600080546001600160a01b0319163390811782559451939492939192918391829187918791869182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160601b0319606091821b811660a05291901b166080528015801590620000bf575061010081105b62000111576040805162461bcd60e51b815260206004820152601c60248201527f496e76656e746f72793a2077726f6e67206d61736b206c656e67746800000000604482015290519081900360640190fd5b60c0525062000120816200012a565b5050505062000176565b6001600160a01b038116600081815260076020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b60805160601c60a05160601c60c0516137066200020860003980610dc7528061146c528061163a52806116b552806118025280611c4e5280611c8c52806120b552806120f45280612280528061239152806126635280612a1e5280612f53525080610fec5280612c6f52806134b55250806110275280612c345280612cc7528061348b528061351652506137066000f3fe608060405234801561001057600080fd5b50600436106101b85760003560e01c80638da5cb5b116100f9578063c3666c3611610097578063d0011d9d11610071578063d0011d9d14610c28578063e985e9c514610c45578063f242432a14610c73578063f2fde38b14610d3e576101b8565b8063c3666c3614610aef578063c4c2bfdc14610c03578063c7778baa14610c0b576101b8565b8063a22cb465116100d3578063a22cb46514610a61578063aa271e1a14610a8f578063adebf6f214610ab5578063bd85b03914610ad2576101b8565b80638da5cb5b14610a2b578063983b2d5614610a335780639865027514610a59576101b8565b8063510b5158116101665780635cfa9297116101405780635cfa9297146107c85780636352211e1461088a57806373c8a958146108a75780637e518ec8146109bb576101b8565b8063510b515814610761578063572b6c051461079a5780635b2bd79e146107c0576101b8565b80630e89341c116101975780630e89341c146103f65780632eb2c2d6146104885780634e1273f41461064f576101b8565b8062fdd58e146101bd57806301ffc9a7146101fb5780630d6a5bbb14610236575b600080fd5b6101e9600480360360408110156101d357600080fd5b506001600160a01b038135169060200135610d64565b60408051918252519081900360200190f35b6102226004803603602081101561021157600080fd5b50356001600160e01b031916610e50565b604080519115158252519081900360200190f35b6103f46004803603608081101561024c57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561027757600080fd5b82018360208201111561028957600080fd5b803590602001918460208302840111640100000000831117156102ab57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102fb57600080fd5b82018360208201111561030d57600080fd5b8035906020019184602083028401116401000000008311171561032f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e96945050505050565b005b6104136004803603602081101561040c57600080fd5b5035610eb8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044d578181015183820152602001610435565b50505050905090810190601f16801561047a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f4600480360360a081101561049e57600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156104d257600080fd5b8201836020820111156104e457600080fd5b8035906020019184602083028401116401000000008311171561050657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561055657600080fd5b82018360208201111561056857600080fd5b8035906020019184602083028401116401000000008311171561058a57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105da57600080fd5b8201836020820111156105ec57600080fd5b8035906020019184600183028401116401000000008311171561060e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ec3945050505050565b6107116004803603604081101561066557600080fd5b81019060208101813564010000000081111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460208302840111640100000000831117156106b457600080fd5b9193909290916020810190356401000000008111156106d257600080fd5b8201836020820111156106e457600080fd5b8035906020019184602083028401116401000000008311171561070657600080fd5b509092509050610ed7565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561074d578181015183820152602001610735565b505050509050019250505060405180910390f35b61077e6004803603602081101561077757600080fd5b5035610fdd565b604080516001600160a01b039092168252519081900360200190f35b610222600480360360208110156107b057600080fd5b50356001600160a01b0316610fe8565b610413611061565b6103f4600480360360808110156107de57600080fd5b6001600160a01b03823516916020810135916040820135919081019060808101606082013564010000000081111561081557600080fd5b82018360208201111561082757600080fd5b8035906020019184600183028401116401000000008311171561084957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110ef945050505050565b61077e600480360360208110156108a057600080fd5b5035611106565b6103f4600480360360608110156108bd57600080fd5b8101906020810181356401000000008111156108d857600080fd5b8201836020820111156108ea57600080fd5b8035906020019184602083028401116401000000008311171561090c57600080fd5b91939092909160208101903564010000000081111561092a57600080fd5b82018360208201111561093c57600080fd5b8035906020019184602083028401116401000000008311171561095e57600080fd5b91939092909160208101903564010000000081111561097c57600080fd5b82018360208201111561098e57600080fd5b803590602001918460208302840111640100000000831117156109b057600080fd5b509092509050611170565b6103f4600480360360208110156109d157600080fd5b8101906020810181356401000000008111156109ec57600080fd5b8201836020820111156109fe57600080fd5b80359060200191846001830284011164010000000083111715610a2057600080fd5b509092509050611262565b61077e6112de565b6103f460048036036020811015610a4957600080fd5b50356001600160a01b03166112ee565b6103f4611305565b6103f460048036036040811015610a7757600080fd5b506001600160a01b0381351690602001351515611363565b61022260048036036020811015610aa557600080fd5b50356001600160a01b0316611444565b61022260048036036020811015610acb57600080fd5b5035611459565b6101e960048036036020811015610ae857600080fd5b5035611464565b6103f460048036036060811015610b0557600080fd5b810190602081018135640100000000811115610b2057600080fd5b820183602082011115610b3257600080fd5b80359060200191846020830284011164010000000083111715610b5457600080fd5b919390929091602081019035640100000000811115610b7257600080fd5b820183602082011115610b8457600080fd5b80359060200191846020830284011164010000000083111715610ba657600080fd5b919390929091602081019035640100000000811115610bc457600080fd5b820183602082011115610bd657600080fd5b80359060200191846020830284011164010000000083111715610bf857600080fd5b5090925090506114db565b610413611623565b6101e960048036036020811015610c2157600080fd5b5035611632565b6103f460048036036020811015610c3e57600080fd5b50356116d9565b61022260048036036040811015610c5b57600080fd5b506001600160a01b03813581169160200135166116ed565b6103f4600480360360a0811015610c8957600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610cc957600080fd5b820183602082011115610cdb57600080fd5b80359060200191846001830284011164010000000083111715610cfd57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061171b945050505050565b6103f460048036036020811015610d5457600080fd5b50356001600160a01b031661190f565b60006001600160a01b038316610dc1576040805162461bcd60e51b815260206004820152601760248201527f496e76656e746f72793a207a65726f2061646472657373000000000000000000604482015290519081900360640190fd5b610deb827f0000000000000000000000000000000000000000000000000000000000000000611980565b15610e25576000828152600460205260409020546001600160a01b03848116911614610e18576000610e1b565b60015b60ff169050610e4a565b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b031982167f510b5158000000000000000000000000000000000000000000000000000000001480610e8e5750610e8e826119c3565b90505b919050565b610ea6610ea1611ac4565b611ace565b610eb284848484611b3b565b50505050565b6060610e8e82611e67565b610ed08585858585611f3a565b5050505050565b6060838214610f2d576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a20696e636f6e73697374656e74206172726179730000604482015290519081900360640190fd5b60008467ffffffffffffffff81118015610f4657600080fd5b50604051908082528060200260200182016040528015610f70578160200160208202803683370190505b50905060005b808614610fd357610fb4878783818110610f8c57fe5b905060200201356001600160a01b0316868684818110610fa857fe5b90506020020135610d64565b828281518110610fc057fe5b6020908102919091010152600101610f76565b5095945050505050565b6000610e8e82612278565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610e8e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316149050919050565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156110e75780601f106110bc576101008083540402835291602001916110e7565b820191906000526020600020905b8154815290600101906020018083116110ca57829003601f168201915b505050505081565b6110fa610ea1611ac4565b610eb284848484612312565b6000818152600460205260408120546001600160a01b038116610e8e576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a206e6f6e2d6578697374696e67204e46540000000000604482015290519081900360640190fd5b61118061117b611ac4565b612448565b84838114801561118f57508082145b6111e0576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b818114611258576112508888838181106111f957fe5b905060200201356001600160a01b031685858481811061121557fe5b9050602002013588888581811061122857fe5b905060200201356001600160a01b03166001600160a01b031661250c9092919063ffffffff16565b6001016111e3565b5050505050505050565b61126d61117b611ac4565b61127960068383613607565b507f04b1dc5c136a3ce9fded8db0ce3d3366c58764ec3a8e4c2b9e52e4ddfe5ebbf7828260405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a15050565b6000546001600160a01b03165b90565b6112f961117b611ac4565b61130281612591565b50565b600061130f611ac4565b905061131a81611ace565b6001600160a01b038116600081815260076020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600061136d611ac4565b9050806001600160a01b0316836001600160a01b031614156113d6576040805162461bcd60e51b815260206004820152601860248201527f496e76656e746f72793a2073656c662d617070726f76616c0000000000000000604482015290519081900360640190fd5b6001600160a01b03818116600081815260016020908152604080832094881680845294825291829020805460ff1916871515908117909155825190815291517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319281900390910190a3505050565b60076020526000908152604090205460ff1681565b6000610e8e826125dd565b6000611490827f0000000000000000000000000000000000000000000000000000000000000000611980565b156114c6576000828152600460205260409020546001600160a01b0316156114b95760016114bc565b60005b60ff169050610e91565b50600081815260036020526040902054610e91565b6114e661117b611ac4565b8483811480156114f557508082145b611546576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b8181146112585785858281811061155c57fe5b905060200201356001600160a01b03166001600160a01b03166323b872dd308a8a8581811061158757fe5b905060200201356001600160a01b03168787868181106115a357fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b15801561160057600080fd5b505af1158015611614573d6000803e3d6000fd5b50505050806001019050611549565b606061162d612603565b905090565b600061165e827f0000000000000000000000000000000000000000000000000000000000000000611980565b6116af576040805162461bcd60e51b815260206004820152601560248201527f496e76656e746f72793a206e6f7420616e204e46540000000000000000000000604482015290519081900360640190fd5b610e8e827f0000000000000000000000000000000000000000000000000000000000000000612647565b6116e461117b611ac4565b6113028161265d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6000611725611ac4565b90506001600160a01b038516611782576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a207472616e7366657220746f207a65726f0000000000604482015290519081900360640190fd5b61178c86826127ca565b6117dd576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a206e6f6e2d617070726f7665642073656e6465720000604482015290519081900360640190fd5b6117e6846125dd565b156117fc576117f786868686612816565b611886565b611826847f0000000000000000000000000000000000000000000000000000000000000000611980565b15611839576117f7868686866000612934565b6040805162461bcd60e51b815260206004820152601960248201527f496e76656e746f72793a206e6f74206120746f6b656e20696400000000000000604482015290519081900360640190fd5b846001600160a01b0316866001600160a01b0316826001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a46118f5856001600160a01b0316612a83565b15611907576119078686868686612a89565b505050505050565b61191a61117b611ac4565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60007f80000000000000000000000000000000000000000000000000000000000000008316158015906119bc57506119b782612c13565b831615155b9392505050565b60006001600160e01b031982167f01ffc9a7000000000000000000000000000000000000000000000000000000001480611a2657506001600160e01b031982167fd9b67a2600000000000000000000000000000000000000000000000000000000145b80611a5a57506001600160e01b031982167f0e89341c00000000000000000000000000000000000000000000000000000000145b80611a8e57506001600160e01b031982167f09ce5c4600000000000000000000000000000000000000000000000000000000145b80610e8e5750506001600160e01b0319167fbd85b039000000000000000000000000000000000000000000000000000000001490565b600061162d612c24565b6001600160a01b03811660009081526007602052604090205460ff16611302576040805162461bcd60e51b815260206004820152601860248201527f4d696e746572526f6c653a206e6f742061204d696e7465720000000000000000604482015290519081900360640190fd5b6001600160a01b038416611b96576040805162461bcd60e51b815260206004820152601760248201527f496e76656e746f72793a206d696e7420746f207a65726f000000000000000000604482015290519081900360640190fd5b825182518114611bed576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a20696e636f6e73697374656e74206172726179730000604482015290519081900360640190fd5b60008060005b838114611d21576000878281518110611c0857fe5b602002602001015190506000878381518110611c2057fe5b60200260200101519050611c33826125dd565b15611c4857611c438a8383612d84565b611d17565b611c72827f0000000000000000000000000000000000000000000000000000000000000000611980565b1561183957611c848a83836001612e76565b6000611cb0837f0000000000000000000000000000000000000000000000000000000000000000612647565b905085611cc35780955060019450611d15565b858114611d0e5760008681526002602090815260408083206001600160a01b038f16845282528083208054890190559782526003905295909520805490940190935560019284611d15565b8460010194505b505b5050600101611bf3565b508115611d615760008281526002602090815260408083206001600160a01b038b1684528252808320805485019055848352600390915290208054820190555b6001600160a01b0387166000611d75611ac4565b6001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8989604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611de5578181015183820152602001611dcd565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611e24578181015183820152602001611e0c565b5050505090500194505050505060405180910390a4611e4b876001600160a01b0316612a83565b15611e5e57611e5e600088888888612fb9565b50505050505050565b60606006611e7483613137565b6040516020018083805460018160011615610100020316600290048015611ed25780601f10611eb0576101008083540402835291820191611ed2565b820191906000526020600020905b815481529060010190602001808311611ebe575b5050825160208401908083835b60208310611efe5780518252601f199092019160209182019101611edf565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050919050565b6001600160a01b038416611f95576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a207472616e7366657220746f207a65726f0000000000604482015290519081900360640190fd5b825182518114611fec576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a20696e636f6e73697374656e74206172726179730000604482015290519081900360640190fd5b6000611ff6611ac4565b905061200287826127ca565b612053576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a206e6f6e2d617070726f7665642073656e6465720000604482015290519081900360640190fd5b60008060005b84811461215d57600088828151811061206e57fe5b60200260200101519050600088838151811061208657fe5b60200260200101519050612099826125dd565b156120af576120aa8c8c8484612816565b612153565b6120d9827f0000000000000000000000000000000000000000000000000000000000000000611980565b15611839576120ec8c8c84846001612934565b6000612118837f0000000000000000000000000000000000000000000000000000000000000000612647565b90508561212b5780955060019450612151565b85811461214a5761213e8d8d8888613246565b80955060019450612151565b8460010194505b505b5050600101612059565b5081156121705761217089898484613246565b876001600160a01b0316896001600160a01b0316846001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8a8a604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156121f55781810151838201526020016121dd565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561223457818101518382015260200161221c565b5050505090500194505050505060405180910390a461225b886001600160a01b0316612a83565b1561226d5761226d8989898989612fb9565b505050505050505050565b60006122a4827f0000000000000000000000000000000000000000000000000000000000000000611980565b156122f6576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a206e6f74206120636f6c6c656374696f6e0000000000604482015290519081900360640190fd5b506000908152600560205260409020546001600160a01b031690565b6001600160a01b03841661236d576040805162461bcd60e51b815260206004820152601760248201527f496e76656e746f72793a206d696e7420746f207a65726f000000000000000000604482015290519081900360640190fd5b612376836125dd565b1561238b57612386848484612d84565b6123c7565b6123b5837f0000000000000000000000000000000000000000000000000000000000000000611980565b15611839576123868484846000612e76565b6001600160a01b03841660006123db611ac4565b6001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628686604051808381526020018281526020019250505060405180910390a4612435846001600160a01b0316612a83565b15610eb257610eb2600085858585612a89565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561248157600080fd5b505afa158015612495573d6000803e3d6000fd5b505050506040513d60208110156124ab57600080fd5b50516001600160a01b03828116911614611302576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261258c90849061329a565b505050565b6001600160a01b038116600081815260076020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b7f8000000000000000000000000000000000000000000000000000000000000000161590565b606061260d61347d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935050505090565b600061265282612c13565b198316905092915050565b612687817f0000000000000000000000000000000000000000000000000000000000000000611980565b156126d9576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a206e6f74206120636f6c6c656374696f6e0000000000604482015290519081900360640190fd5b6000818152600560205260409020546001600160a01b031615612743576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a206578697374696e6720636f6c6c656374696f6e0000604482015290519081900360640190fd5b61274b611ac4565b600082815260056020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055612798816125dd565b1515817f4ebf8ad0df535ba5e487bc9cb27fe44120ca81c3a95d3eba79c0bd1df2ab2d5d60405160405180910390a350565b6000816001600160a01b0316836001600160a01b031614806119bc5750506001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b80612868576040805162461bcd60e51b815260206004820152601560248201527f496e76656e746f72793a207a65726f2076616c75650000000000000000000000604482015290519081900360640190fd5b60008281526002602090815260408083206001600160a01b0388168452909152902054818110156128e0576040805162461bcd60e51b815260206004820152601d60248201527f496e76656e746f72793a206e6f7420656e6f7567682062616c616e6365000000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b031614610ed05760009283526002602090815260408085206001600160a01b039788168652909152808420918390039091559290931681522080549091019055565b81600114612989576040805162461bcd60e51b815260206004820152601a60248201527f496e76656e746f72793a2077726f6e67204e46542076616c7565000000000000604482015290519081900360640190fd5b6000838152600460205260409020546001600160a01b038681169116146129f7576040805162461bcd60e51b815260206004820152601860248201527f496e76656e746f72793a206e6f6e2d6f776e6564204e46540000000000000000604482015290519081900360640190fd5b60008381526004602052604090206001600160a01b038516905580610ed0576000612a42847f0000000000000000000000000000000000000000000000000000000000000000612647565b60009081526002602090815260408083206001600160a01b03998a168452909152808220805460001901905595909616865250505091208054600101905550565b3b151590565b7ff23a6e61000000000000000000000000000000000000000000000000000000006001600160a01b03851663f23a6e61612ac1611ac4565b888787876040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b3b578181015183820152602001612b23565b50505050905090810190601f168015612b685780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015612b8b57600080fd5b505af1158015612b9f573d6000803e3d6000fd5b505050506040513d6020811015612bb557600080fd5b50516001600160e01b03191614610ed0576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a207472616e7366657220726566757365640000000000604482015290519081900360640190fd5b6001610100919091031b6000190190565b60003381612c306135e0565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480612ca357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b15612cb15791506112eb9050565b6001600160a01b0382163214801590612d7057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d682846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015612d4357600080fd5b505afa158015612d57573d6000803e3d6000fd5b505050506040513d6020811015612d6d57600080fd5b50515b15612d7e5791506112eb9050565b50905090565b80612dd6576040805162461bcd60e51b815260206004820152601560248201527f496e76656e746f72793a207a65726f2076616c75650000000000000000000000604482015290519081900360640190fd5b600082815260036020526040902054818101818111612e3c576040805162461bcd60e51b815260206004820152601a60248201527f496e76656e746f72793a20737570706c79206f766572666c6f77000000000000604482015290519081900360640190fd5b600093845260036020908152604080862092909255600281528185206001600160a01b039096168552949094525091902080549091019055565b81600114612ecb576040805162461bcd60e51b815260206004820152601a60248201527f496e76656e746f72793a2077726f6e67204e46542076616c7565000000000000604482015290519081900360640190fd5b60008381526004602052604090205415612f2c576040805162461bcd60e51b815260206004820152601d60248201527f496e76656e746f72793a206578697374696e672f6275726e74204e4654000000604482015290519081900360640190fd5b60008381526004602052604090206001600160a01b038516905580610eb2576000612f77847f0000000000000000000000000000000000000000000000000000000000000000612647565b600090815260036020908152604080832080546001908101909155600283528184206001600160a01b038a168552909252909120805490910190555050505050565b7fbc197c81000000000000000000000000000000000000000000000000000000006001600160a01b03851663bc197c81612ff1611ac4565b888787876040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561306a578181015183820152602001613052565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156130a9578181015183820152602001613091565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156130e55781810151838201526020016130cd565b50505050905090810190601f1680156131125780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015612b8b57600080fd5b606081613178575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610e91565b8160005b811561319057600101600a8204915061317c565b60008167ffffffffffffffff811180156131a957600080fd5b506040519080825280601f01601f1916602001820160405280156131d4576020820181803683370190505b50859350905060001982015b831561323d57600a840660300160f81b8282806001900393508151811061320357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506131e0565b50949350505050565b826001600160a01b0316846001600160a01b031614610eb25760009182526002602090815260408084206001600160a01b039687168552909152808320805483900390559290931681522080549091019055565b816132ad6001600160a01b038216612a83565b6132fe576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b6020831061333b5780518252601f19909201916020918201910161331c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461339d576040519150601f19603f3d011682016040523d82523d6000602084013e6133a2565b606091505b509150915081156134215780511561341c578080602001905160208110156133c957600080fd5b505161341c576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b610ed0565b8051613474576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b366000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114806134e957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b15613500576134f66135ec565b92509250506135dc565b6001600160a01b03811632148015906135c657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d661354b6135e0565b836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561359957600080fd5b505afa1580156135ad573d6000803e3d6000fd5b505050506040513d60208110156135c357600080fd5b50515b156135d3576134f66135ec565b60003692509250505b9091565b60131936013560601c90565b3660006135ff60131983018284816136a8565b915091509091565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261363d5760008555613683565b82601f106136565782800160ff19823516178555613683565b82800160010185558215613683579182015b82811115613683578235825591602001919060010190613668565b5061368f929150613693565b5090565b5b8082111561368f5760008155600101613694565b600080858511156136b7578182fd5b838611156136c3578182fd5b505082019391909203915056fea264697066735822122086b91fdb9f790bc269fbc7947d5dd661463fc15001cec91b26da95f7a1352b6a64736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101b85760003560e01c80638da5cb5b116100f9578063c3666c3611610097578063d0011d9d11610071578063d0011d9d14610c28578063e985e9c514610c45578063f242432a14610c73578063f2fde38b14610d3e576101b8565b8063c3666c3614610aef578063c4c2bfdc14610c03578063c7778baa14610c0b576101b8565b8063a22cb465116100d3578063a22cb46514610a61578063aa271e1a14610a8f578063adebf6f214610ab5578063bd85b03914610ad2576101b8565b80638da5cb5b14610a2b578063983b2d5614610a335780639865027514610a59576101b8565b8063510b5158116101665780635cfa9297116101405780635cfa9297146107c85780636352211e1461088a57806373c8a958146108a75780637e518ec8146109bb576101b8565b8063510b515814610761578063572b6c051461079a5780635b2bd79e146107c0576101b8565b80630e89341c116101975780630e89341c146103f65780632eb2c2d6146104885780634e1273f41461064f576101b8565b8062fdd58e146101bd57806301ffc9a7146101fb5780630d6a5bbb14610236575b600080fd5b6101e9600480360360408110156101d357600080fd5b506001600160a01b038135169060200135610d64565b60408051918252519081900360200190f35b6102226004803603602081101561021157600080fd5b50356001600160e01b031916610e50565b604080519115158252519081900360200190f35b6103f46004803603608081101561024c57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561027757600080fd5b82018360208201111561028957600080fd5b803590602001918460208302840111640100000000831117156102ab57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102fb57600080fd5b82018360208201111561030d57600080fd5b8035906020019184602083028401116401000000008311171561032f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e96945050505050565b005b6104136004803603602081101561040c57600080fd5b5035610eb8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044d578181015183820152602001610435565b50505050905090810190601f16801561047a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f4600480360360a081101561049e57600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156104d257600080fd5b8201836020820111156104e457600080fd5b8035906020019184602083028401116401000000008311171561050657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561055657600080fd5b82018360208201111561056857600080fd5b8035906020019184602083028401116401000000008311171561058a57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105da57600080fd5b8201836020820111156105ec57600080fd5b8035906020019184600183028401116401000000008311171561060e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ec3945050505050565b6107116004803603604081101561066557600080fd5b81019060208101813564010000000081111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460208302840111640100000000831117156106b457600080fd5b9193909290916020810190356401000000008111156106d257600080fd5b8201836020820111156106e457600080fd5b8035906020019184602083028401116401000000008311171561070657600080fd5b509092509050610ed7565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561074d578181015183820152602001610735565b505050509050019250505060405180910390f35b61077e6004803603602081101561077757600080fd5b5035610fdd565b604080516001600160a01b039092168252519081900360200190f35b610222600480360360208110156107b057600080fd5b50356001600160a01b0316610fe8565b610413611061565b6103f4600480360360808110156107de57600080fd5b6001600160a01b03823516916020810135916040820135919081019060808101606082013564010000000081111561081557600080fd5b82018360208201111561082757600080fd5b8035906020019184600183028401116401000000008311171561084957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110ef945050505050565b61077e600480360360208110156108a057600080fd5b5035611106565b6103f4600480360360608110156108bd57600080fd5b8101906020810181356401000000008111156108d857600080fd5b8201836020820111156108ea57600080fd5b8035906020019184602083028401116401000000008311171561090c57600080fd5b91939092909160208101903564010000000081111561092a57600080fd5b82018360208201111561093c57600080fd5b8035906020019184602083028401116401000000008311171561095e57600080fd5b91939092909160208101903564010000000081111561097c57600080fd5b82018360208201111561098e57600080fd5b803590602001918460208302840111640100000000831117156109b057600080fd5b509092509050611170565b6103f4600480360360208110156109d157600080fd5b8101906020810181356401000000008111156109ec57600080fd5b8201836020820111156109fe57600080fd5b80359060200191846001830284011164010000000083111715610a2057600080fd5b509092509050611262565b61077e6112de565b6103f460048036036020811015610a4957600080fd5b50356001600160a01b03166112ee565b6103f4611305565b6103f460048036036040811015610a7757600080fd5b506001600160a01b0381351690602001351515611363565b61022260048036036020811015610aa557600080fd5b50356001600160a01b0316611444565b61022260048036036020811015610acb57600080fd5b5035611459565b6101e960048036036020811015610ae857600080fd5b5035611464565b6103f460048036036060811015610b0557600080fd5b810190602081018135640100000000811115610b2057600080fd5b820183602082011115610b3257600080fd5b80359060200191846020830284011164010000000083111715610b5457600080fd5b919390929091602081019035640100000000811115610b7257600080fd5b820183602082011115610b8457600080fd5b80359060200191846020830284011164010000000083111715610ba657600080fd5b919390929091602081019035640100000000811115610bc457600080fd5b820183602082011115610bd657600080fd5b80359060200191846020830284011164010000000083111715610bf857600080fd5b5090925090506114db565b610413611623565b6101e960048036036020811015610c2157600080fd5b5035611632565b6103f460048036036020811015610c3e57600080fd5b50356116d9565b61022260048036036040811015610c5b57600080fd5b506001600160a01b03813581169160200135166116ed565b6103f4600480360360a0811015610c8957600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610cc957600080fd5b820183602082011115610cdb57600080fd5b80359060200191846001830284011164010000000083111715610cfd57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061171b945050505050565b6103f460048036036020811015610d5457600080fd5b50356001600160a01b031661190f565b60006001600160a01b038316610dc1576040805162461bcd60e51b815260206004820152601760248201527f496e76656e746f72793a207a65726f2061646472657373000000000000000000604482015290519081900360640190fd5b610deb827f0000000000000000000000000000000000000000000000000000000000000000611980565b15610e25576000828152600460205260409020546001600160a01b03848116911614610e18576000610e1b565b60015b60ff169050610e4a565b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b031982167f510b5158000000000000000000000000000000000000000000000000000000001480610e8e5750610e8e826119c3565b90505b919050565b610ea6610ea1611ac4565b611ace565b610eb284848484611b3b565b50505050565b6060610e8e82611e67565b610ed08585858585611f3a565b5050505050565b6060838214610f2d576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a20696e636f6e73697374656e74206172726179730000604482015290519081900360640190fd5b60008467ffffffffffffffff81118015610f4657600080fd5b50604051908082528060200260200182016040528015610f70578160200160208202803683370190505b50905060005b808614610fd357610fb4878783818110610f8c57fe5b905060200201356001600160a01b0316868684818110610fa857fe5b90506020020135610d64565b828281518110610fc057fe5b6020908102919091010152600101610f76565b5095945050505050565b6000610e8e82612278565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610e8e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316149050919050565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156110e75780601f106110bc576101008083540402835291602001916110e7565b820191906000526020600020905b8154815290600101906020018083116110ca57829003601f168201915b505050505081565b6110fa610ea1611ac4565b610eb284848484612312565b6000818152600460205260408120546001600160a01b038116610e8e576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a206e6f6e2d6578697374696e67204e46540000000000604482015290519081900360640190fd5b61118061117b611ac4565b612448565b84838114801561118f57508082145b6111e0576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b818114611258576112508888838181106111f957fe5b905060200201356001600160a01b031685858481811061121557fe5b9050602002013588888581811061122857fe5b905060200201356001600160a01b03166001600160a01b031661250c9092919063ffffffff16565b6001016111e3565b5050505050505050565b61126d61117b611ac4565b61127960068383613607565b507f04b1dc5c136a3ce9fded8db0ce3d3366c58764ec3a8e4c2b9e52e4ddfe5ebbf7828260405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a15050565b6000546001600160a01b03165b90565b6112f961117b611ac4565b61130281612591565b50565b600061130f611ac4565b905061131a81611ace565b6001600160a01b038116600081815260076020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600061136d611ac4565b9050806001600160a01b0316836001600160a01b031614156113d6576040805162461bcd60e51b815260206004820152601860248201527f496e76656e746f72793a2073656c662d617070726f76616c0000000000000000604482015290519081900360640190fd5b6001600160a01b03818116600081815260016020908152604080832094881680845294825291829020805460ff1916871515908117909155825190815291517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319281900390910190a3505050565b60076020526000908152604090205460ff1681565b6000610e8e826125dd565b6000611490827f0000000000000000000000000000000000000000000000000000000000000000611980565b156114c6576000828152600460205260409020546001600160a01b0316156114b95760016114bc565b60005b60ff169050610e91565b50600081815260036020526040902054610e91565b6114e661117b611ac4565b8483811480156114f557508082145b611546576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b8181146112585785858281811061155c57fe5b905060200201356001600160a01b03166001600160a01b03166323b872dd308a8a8581811061158757fe5b905060200201356001600160a01b03168787868181106115a357fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b15801561160057600080fd5b505af1158015611614573d6000803e3d6000fd5b50505050806001019050611549565b606061162d612603565b905090565b600061165e827f0000000000000000000000000000000000000000000000000000000000000000611980565b6116af576040805162461bcd60e51b815260206004820152601560248201527f496e76656e746f72793a206e6f7420616e204e46540000000000000000000000604482015290519081900360640190fd5b610e8e827f0000000000000000000000000000000000000000000000000000000000000000612647565b6116e461117b611ac4565b6113028161265d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6000611725611ac4565b90506001600160a01b038516611782576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a207472616e7366657220746f207a65726f0000000000604482015290519081900360640190fd5b61178c86826127ca565b6117dd576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a206e6f6e2d617070726f7665642073656e6465720000604482015290519081900360640190fd5b6117e6846125dd565b156117fc576117f786868686612816565b611886565b611826847f0000000000000000000000000000000000000000000000000000000000000000611980565b15611839576117f7868686866000612934565b6040805162461bcd60e51b815260206004820152601960248201527f496e76656e746f72793a206e6f74206120746f6b656e20696400000000000000604482015290519081900360640190fd5b846001600160a01b0316866001600160a01b0316826001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a46118f5856001600160a01b0316612a83565b15611907576119078686868686612a89565b505050505050565b61191a61117b611ac4565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60007f80000000000000000000000000000000000000000000000000000000000000008316158015906119bc57506119b782612c13565b831615155b9392505050565b60006001600160e01b031982167f01ffc9a7000000000000000000000000000000000000000000000000000000001480611a2657506001600160e01b031982167fd9b67a2600000000000000000000000000000000000000000000000000000000145b80611a5a57506001600160e01b031982167f0e89341c00000000000000000000000000000000000000000000000000000000145b80611a8e57506001600160e01b031982167f09ce5c4600000000000000000000000000000000000000000000000000000000145b80610e8e5750506001600160e01b0319167fbd85b039000000000000000000000000000000000000000000000000000000001490565b600061162d612c24565b6001600160a01b03811660009081526007602052604090205460ff16611302576040805162461bcd60e51b815260206004820152601860248201527f4d696e746572526f6c653a206e6f742061204d696e7465720000000000000000604482015290519081900360640190fd5b6001600160a01b038416611b96576040805162461bcd60e51b815260206004820152601760248201527f496e76656e746f72793a206d696e7420746f207a65726f000000000000000000604482015290519081900360640190fd5b825182518114611bed576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a20696e636f6e73697374656e74206172726179730000604482015290519081900360640190fd5b60008060005b838114611d21576000878281518110611c0857fe5b602002602001015190506000878381518110611c2057fe5b60200260200101519050611c33826125dd565b15611c4857611c438a8383612d84565b611d17565b611c72827f0000000000000000000000000000000000000000000000000000000000000000611980565b1561183957611c848a83836001612e76565b6000611cb0837f0000000000000000000000000000000000000000000000000000000000000000612647565b905085611cc35780955060019450611d15565b858114611d0e5760008681526002602090815260408083206001600160a01b038f16845282528083208054890190559782526003905295909520805490940190935560019284611d15565b8460010194505b505b5050600101611bf3565b508115611d615760008281526002602090815260408083206001600160a01b038b1684528252808320805485019055848352600390915290208054820190555b6001600160a01b0387166000611d75611ac4565b6001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8989604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611de5578181015183820152602001611dcd565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611e24578181015183820152602001611e0c565b5050505090500194505050505060405180910390a4611e4b876001600160a01b0316612a83565b15611e5e57611e5e600088888888612fb9565b50505050505050565b60606006611e7483613137565b6040516020018083805460018160011615610100020316600290048015611ed25780601f10611eb0576101008083540402835291820191611ed2565b820191906000526020600020905b815481529060010190602001808311611ebe575b5050825160208401908083835b60208310611efe5780518252601f199092019160209182019101611edf565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050919050565b6001600160a01b038416611f95576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a207472616e7366657220746f207a65726f0000000000604482015290519081900360640190fd5b825182518114611fec576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a20696e636f6e73697374656e74206172726179730000604482015290519081900360640190fd5b6000611ff6611ac4565b905061200287826127ca565b612053576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a206e6f6e2d617070726f7665642073656e6465720000604482015290519081900360640190fd5b60008060005b84811461215d57600088828151811061206e57fe5b60200260200101519050600088838151811061208657fe5b60200260200101519050612099826125dd565b156120af576120aa8c8c8484612816565b612153565b6120d9827f0000000000000000000000000000000000000000000000000000000000000000611980565b15611839576120ec8c8c84846001612934565b6000612118837f0000000000000000000000000000000000000000000000000000000000000000612647565b90508561212b5780955060019450612151565b85811461214a5761213e8d8d8888613246565b80955060019450612151565b8460010194505b505b5050600101612059565b5081156121705761217089898484613246565b876001600160a01b0316896001600160a01b0316846001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8a8a604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156121f55781810151838201526020016121dd565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561223457818101518382015260200161221c565b5050505090500194505050505060405180910390a461225b886001600160a01b0316612a83565b1561226d5761226d8989898989612fb9565b505050505050505050565b60006122a4827f0000000000000000000000000000000000000000000000000000000000000000611980565b156122f6576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a206e6f74206120636f6c6c656374696f6e0000000000604482015290519081900360640190fd5b506000908152600560205260409020546001600160a01b031690565b6001600160a01b03841661236d576040805162461bcd60e51b815260206004820152601760248201527f496e76656e746f72793a206d696e7420746f207a65726f000000000000000000604482015290519081900360640190fd5b612376836125dd565b1561238b57612386848484612d84565b6123c7565b6123b5837f0000000000000000000000000000000000000000000000000000000000000000611980565b15611839576123868484846000612e76565b6001600160a01b03841660006123db611ac4565b6001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628686604051808381526020018281526020019250505060405180910390a4612435846001600160a01b0316612a83565b15610eb257610eb2600085858585612a89565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561248157600080fd5b505afa158015612495573d6000803e3d6000fd5b505050506040513d60208110156124ab57600080fd5b50516001600160a01b03828116911614611302576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261258c90849061329a565b505050565b6001600160a01b038116600081815260076020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b7f8000000000000000000000000000000000000000000000000000000000000000161590565b606061260d61347d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935050505090565b600061265282612c13565b198316905092915050565b612687817f0000000000000000000000000000000000000000000000000000000000000000611980565b156126d9576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a206e6f74206120636f6c6c656374696f6e0000000000604482015290519081900360640190fd5b6000818152600560205260409020546001600160a01b031615612743576040805162461bcd60e51b815260206004820152601e60248201527f496e76656e746f72793a206578697374696e6720636f6c6c656374696f6e0000604482015290519081900360640190fd5b61274b611ac4565b600082815260056020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055612798816125dd565b1515817f4ebf8ad0df535ba5e487bc9cb27fe44120ca81c3a95d3eba79c0bd1df2ab2d5d60405160405180910390a350565b6000816001600160a01b0316836001600160a01b031614806119bc5750506001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b80612868576040805162461bcd60e51b815260206004820152601560248201527f496e76656e746f72793a207a65726f2076616c75650000000000000000000000604482015290519081900360640190fd5b60008281526002602090815260408083206001600160a01b0388168452909152902054818110156128e0576040805162461bcd60e51b815260206004820152601d60248201527f496e76656e746f72793a206e6f7420656e6f7567682062616c616e6365000000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b031614610ed05760009283526002602090815260408085206001600160a01b039788168652909152808420918390039091559290931681522080549091019055565b81600114612989576040805162461bcd60e51b815260206004820152601a60248201527f496e76656e746f72793a2077726f6e67204e46542076616c7565000000000000604482015290519081900360640190fd5b6000838152600460205260409020546001600160a01b038681169116146129f7576040805162461bcd60e51b815260206004820152601860248201527f496e76656e746f72793a206e6f6e2d6f776e6564204e46540000000000000000604482015290519081900360640190fd5b60008381526004602052604090206001600160a01b038516905580610ed0576000612a42847f0000000000000000000000000000000000000000000000000000000000000000612647565b60009081526002602090815260408083206001600160a01b03998a168452909152808220805460001901905595909616865250505091208054600101905550565b3b151590565b7ff23a6e61000000000000000000000000000000000000000000000000000000006001600160a01b03851663f23a6e61612ac1611ac4565b888787876040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b3b578181015183820152602001612b23565b50505050905090810190601f168015612b685780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015612b8b57600080fd5b505af1158015612b9f573d6000803e3d6000fd5b505050506040513d6020811015612bb557600080fd5b50516001600160e01b03191614610ed0576040805162461bcd60e51b815260206004820152601b60248201527f496e76656e746f72793a207472616e7366657220726566757365640000000000604482015290519081900360640190fd5b6001610100919091031b6000190190565b60003381612c306135e0565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480612ca357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b15612cb15791506112eb9050565b6001600160a01b0382163214801590612d7057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d682846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015612d4357600080fd5b505afa158015612d57573d6000803e3d6000fd5b505050506040513d6020811015612d6d57600080fd5b50515b15612d7e5791506112eb9050565b50905090565b80612dd6576040805162461bcd60e51b815260206004820152601560248201527f496e76656e746f72793a207a65726f2076616c75650000000000000000000000604482015290519081900360640190fd5b600082815260036020526040902054818101818111612e3c576040805162461bcd60e51b815260206004820152601a60248201527f496e76656e746f72793a20737570706c79206f766572666c6f77000000000000604482015290519081900360640190fd5b600093845260036020908152604080862092909255600281528185206001600160a01b039096168552949094525091902080549091019055565b81600114612ecb576040805162461bcd60e51b815260206004820152601a60248201527f496e76656e746f72793a2077726f6e67204e46542076616c7565000000000000604482015290519081900360640190fd5b60008381526004602052604090205415612f2c576040805162461bcd60e51b815260206004820152601d60248201527f496e76656e746f72793a206578697374696e672f6275726e74204e4654000000604482015290519081900360640190fd5b60008381526004602052604090206001600160a01b038516905580610eb2576000612f77847f0000000000000000000000000000000000000000000000000000000000000000612647565b600090815260036020908152604080832080546001908101909155600283528184206001600160a01b038a168552909252909120805490910190555050505050565b7fbc197c81000000000000000000000000000000000000000000000000000000006001600160a01b03851663bc197c81612ff1611ac4565b888787876040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561306a578181015183820152602001613052565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156130a9578181015183820152602001613091565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156130e55781810151838201526020016130cd565b50505050905090810190601f1680156131125780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015612b8b57600080fd5b606081613178575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610e91565b8160005b811561319057600101600a8204915061317c565b60008167ffffffffffffffff811180156131a957600080fd5b506040519080825280601f01601f1916602001820160405280156131d4576020820181803683370190505b50859350905060001982015b831561323d57600a840660300160f81b8282806001900393508151811061320357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506131e0565b50949350505050565b826001600160a01b0316846001600160a01b031614610eb25760009182526002602090815260408084206001600160a01b039687168552909152808320805483900390559290931681522080549091019055565b816132ad6001600160a01b038216612a83565b6132fe576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b6020831061333b5780518252601f19909201916020918201910161331c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461339d576040519150601f19603f3d011682016040523d82523d6000602084013e6133a2565b606091505b509150915081156134215780511561341c578080602001905160208110156133c957600080fd5b505161341c576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b610ed0565b8051613474576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b366000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114806134e957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b15613500576134f66135ec565b92509250506135dc565b6001600160a01b03811632148015906135c657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d661354b6135e0565b836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561359957600080fd5b505afa1580156135ad573d6000803e3d6000fd5b505050506040513d60208110156135c357600080fd5b50515b156135d3576134f66135ec565b60003692509250505b9091565b60131936013560601c90565b3660006135ff60131983018284816136a8565b915091509091565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261363d5760008555613683565b82601f106136565782800160ff19823516178555613683565b82800160010185558215613683579182015b82811115613683578235825591602001919060010190613668565b5061368f929150613693565b5090565b5b8082111561368f5760008155600101613694565b600080858511156136b7578182fd5b838611156136c3578182fd5b505082019391909203915056fea264697066735822122086b91fdb9f790bc269fbc7947d5dd661463fc15001cec91b26da95f7a1352b6a64736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}