{
  "_format": "hh-sol-artifact-1",
  "contractName": "SomaEarnToken",
  "sourceName": "contracts/soma/SomaEarn/SomaEarnToken.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "previousBalance",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newBalance",
          "type": "uint256"
        }
      ],
      "name": "BalanceChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "prevPrivileges",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "newPrivileges",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RequiredPrivilegesUpdated",
      "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": "value",
          "type": "uint256"
        }
      ],
      "name": "Seized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DEFAULT_PRIVILEGES",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GLOBAL_SEIZE_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GLOBAL_UPDATE_PRIVILEGES_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "LOCAL_SEIZE_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "LOCAL_UPDATE_PRIVILEGES_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "SOMA",
      "outputs": [
        {
          "internalType": "contract ISOMA",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "canTransferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "pos",
          "type": "uint32"
        }
      ],
      "name": "checkpoints",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "fromBlock",
              "type": "uint32"
            },
            {
              "internalType": "uint224",
              "name": "balance",
              "type": "uint224"
            }
          ],
          "internalType": "struct ERC20HistoryUpgradeable.Checkpoint",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getPastBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getPastTotalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasPrivileges",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_poolId",
          "type": "bytes32"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes[]",
          "name": "data",
          "type": "bytes[]"
        }
      ],
      "name": "multicall",
      "outputs": [
        {
          "internalType": "bytes[]",
          "name": "results",
          "type": "bytes[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "numCheckpoints",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "permit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "poolId",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "requiredPrivileges",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenHolder",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "seize",
      "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": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "newRequiredPrivileges",
          "type": "bytes32"
        }
      ],
      "name": "updateRequiredPrivileges",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60c0604052730f3dc00189dbcd1d0c574e48031270cae04c4adf6080526001600160401b0360a0523480156200003457600080fd5b506200003f62000045565b62000107565b600054610100900460ff1615620000b25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000105576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805160a0516135b662000173600039600061035501526000818161040f0152818161079e015281816108e90152818161098501528181610a8101528181610bf701528181610c9301528181610da2015281816113ea015281816115e40152611d6401526135b66000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c80636fcfff4511610151578063a457c2d7116100c3578063dd62ed3e11610087578063dd62ed3e14610585578063eb9253c014610598578063eec47d60146105ab578063f1127ed8146105b5578063f2fde38b146105f2578063f37d11cc1461060557600080fd5b8063a457c2d714610522578063a9059cbb14610535578063ac9650d814610548578063c72460ee14610568578063d505accf1461057257600080fd5b80638da5cb5b116101155780638da5cb5b146104bd5780638e539e8c146104ce57806391d14854146104e15780639498bd71146104f457806395d89b41146105075780639dc29fac1461050f57600080fd5b80636fcfff451461044957806370a0823114610471578063715018a61461049a5780637ecebe00146104a25780638456cb59146104b557600080fd5b80632a7a0c68116101ea5780633e0dc34e116101ae5780633e0dc34e146103c85780633f4ba83a146103d257806340c10f19146103dc5780634b63885a146103ef5780635c975abb1461040257806363727fc21461040a57600080fd5b80632a7a0c68146103505780633013928014610377578063313ce5671461039e5780633644e515146103ad57806339509351146103b557600080fd5b80631e26571f116102315780631e26571f146102e7578063227102a6146102f057806323b872dd14610317578063248a9ca31461032a5780632772ce9d1461033d57600080fd5b806301ffc9a71461026e57806306fdde0314610296578063095ea7b3146102ab5780630df86999146102be57806318160ddd146102df575b600080fd5b61028161027c366004612f11565b610618565b60405190151581526020015b60405180910390f35b61029e610679565b60405161028d9190612f8b565b6102816102b9366004612fb3565b61070b565b6102d16102cc366004612fb3565b610723565b60405190815260200161028d565b6067546102d1565b610290546102d1565b6102d17ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb181565b610281610325366004612fdf565b610776565b6102d1610338366004613020565b61079a565b61028161034b366004613020565b61088c565b6102d17f000000000000000000000000000000000000000000000000000000000000000081565b6102d17fca36d5a0569842341b54d50138a85347289de5969cb525e882bbb1a2dedcfef981565b6040516012815260200161028d565b6102d16108a7565b6102816103c3366004612fb3565b6108b6565b6102d16103275481565b6103da6108d8565b005b6103da6103ea366004612fb3565b610a67565b6102816103fd366004613039565b610a7d565b610281610b87565b6104317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161028d565b61045c610457366004613039565b610b91565b60405163ffffffff909116815260200161028d565b6102d161047f366004613039565b6001600160a01b031660009081526065602052604090205490565b6103da610bb3565b6102d16104b0366004613039565b610bc7565b6103da610be6565b6033546001600160a01b0316610431565b6102d16104dc366004613020565b610d72565b6102816104ef366004613056565b610d9e565b6103da610502366004613020565b610e95565b61029e611016565b6103da61051d366004612fb3565b611025565b610281610530366004612fb3565b611037565b610281610543366004612fb3565b6110b2565b61055b610556366004613086565b6110c0565b60405161028d91906130fb565b6102d161025b5481565b6103da61058036600461315d565b6111b5565b6102d16105933660046131d4565b611319565b6103da6105a6366004612fb3565b611344565b6102d161028f5481565b6105c86105c3366004613202565b6114e5565b60408051825163ffffffff1681526020928301516001600160e01b0316928101929092520161028d565b6103da610600366004613039565b611569565b610281610613366004612fdf565b6115df565b60006001600160e01b031982166336372b0760e01b148061064957506001600160e01b03198216634ec7fbed60e11b145b8061066457506001600160e01b031982166383abf71560e01b145b80610673575061067382611789565b92915050565b60606068805461068890613239565b80601f01602080910402602001604051908101604052809291908181526020018280546106b490613239565b80156107015780601f106106d657610100808354040283529160200191610701565b820191906000526020600020905b8154815290600101906020018083116106e457829003601f168201915b5050505050905090565b6000336107198185856117ae565b5060019392505050565b600043821061074d5760405162461bcd60e51b81526004016107449061326d565b60405180910390fd5b6001600160a01b038316600090815260fb6020526040902061076f90836118d2565b9392505050565b60003361078485828561198f565b61078f858585611a09565b506001949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081e91906132ae565b6001600160a01b031663248a9ca3836040518263ffffffff1660e01b815260040161084b91815260200190565b602060405180830381865afa158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067391906132cb565b6000610896611be8565b61089f82611c42565b506001919050565b60006108b1611c87565b905090565b6000336107198185856108c98383611319565b6108d391906132fa565b6117ae565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610945573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096991906132ae565b6001600160a01b03161480610a105750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0591906132ae565b6001600160a01b0316145b610a5c5760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c79006044820152606401610744565b610a64611d04565b50565b610a6f611be8565b610a798282611d56565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0191906132ae565b6001600160a01b031663253bd7b783610b1a6102905490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015610b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610673919061330d565b60006108b1611d60565b6001600160a01b038116600090815260fb602052604081205461067390611df4565b610bbb611be8565b610bc56000611e5d565b565b6001600160a01b03811660009081526101606020526040812054610673565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7791906132ae565b6001600160a01b03161480610d1e5750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1391906132ae565b6001600160a01b0316145b610d6a5760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c79006044820152606401610744565b610a64611eaf565b6000438210610d935760405162461bcd60e51b81526004016107449061326d565b61067360fc836118d2565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2291906132ae565b604051632474521560e21b8152600481018590526001600160a01b03848116602483015291909116906391d1485490604401602060405180830381865afa158015610e71573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076f919061330d565b600054610100900460ff1615808015610eb55750600054600160ff909116105b80610ecf5750303b158015610ecf575060005460ff166001145b610f325760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610744565b6000805460ff191660011790558015610f55576000805461ff0019166101001790555b610f5d611eec565b610fc760405180604001604052806004815260200163534f4d4160e01b8152506040518060400160405280600e81526020016d29b7b6b09024a7aa902a37b5b2b760911b81525060405180604001604052806005815260200164732d696f7560d81b815250611f1c565b6103278290558015610a79576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60606069805461068890613239565b61102d611be8565b610a798282611fd6565b600033816110458286611319565b9050838110156110a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610744565b61078f82868684036117ae565b600033610719818585611a09565b60608167ffffffffffffffff8111156110db576110db61332f565b60405190808252806020026020018201604052801561110e57816020015b60608152602001906001900390816110f95790505b50905060005b828110156111ae5761117e3085858481811061113257611132613345565b9050602002810190611144919061335b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fe092505050565b82828151811061119057611190613345565b602002602001018190525080806111a6906133a9565b915050611114565b5092915050565b834211156112055760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610744565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886112348c6120d4565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061128f826120fd565b9050600061129f8287878761214b565b9050896001600160a01b0316816001600160a01b0316146113025760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610744565b61130d8a8a8a6117ae565b50505050505050505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b61025c805460ff19166001179055600061135b3390565b905061136a61025b5482610d9e565b8061139a575061139a7fca36d5a0569842341b54d50138a85347289de5969cb525e882bbb1a2dedcfef982610d9e565b6113e65760405162461bcd60e51b815260206004820152601e60248201527f5365697a61626c6553656375726974793a20554e415554484f52495a454400006044820152606401610744565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ff0d1a606040518163ffffffff1660e01b8152600401602060405180830381865afa158015611446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146a91906132ae565b9050611477848285612173565b806001600160a01b0316846001600160a01b03166114923390565b6001600160a01b03167fa9aec5d8b86e2fa2fd6ac3af62f2622e3dfdab1967d4cbbb56a5df7d74cb887c866040516114cc91815260200190565b60405180910390a4505061025c805460ff191690555050565b60408051808201909152600080825260208201526001600160a01b038316600090815260fb60205260409020805463ffffffff841690811061152957611529613345565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b611571611be8565b6001600160a01b0381166115d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610744565b610a6481611e5d565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611640573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166491906132ae565b905060006116726102905490565b90506001600160a01b03861615806116f6575060405163253bd7b760e01b81526001600160a01b0387811660048301526024820183905283169063253bd7b790604401602060405180830381865afa1580156116d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f6919061330d565b801561177f57506001600160a01b038516158061177f575060405163253bd7b760e01b81526001600160a01b0386811660048301526024820183905283169063253bd7b790604401602060405180830381865afa15801561175b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177f919061330d565b9695505050505050565b60006001600160e01b03198216633cdf447360e21b148061067357506106738261217e565b6001600160a01b0383166118105760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610744565b6001600160a01b0382166118715760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610744565b6001600160a01b0383811660008181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b8154600090815b818110156119365760006118ed82846121a3565b90508486828154811061190257611902613345565b60009182526020909120015463ffffffff16111561192257809250611930565b61192d8160016132fa565b91505b506118d9565b811561197a57846119486001846133c2565b8154811061195857611958613345565b60009182526020909120015464010000000090046001600160e01b031661197d565b60005b6001600160e01b031695945050505050565b600061199b8484611319565b90506000198114611a0357818110156119f65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610744565b611a0384848484036117ae565b50505050565b6001600160a01b038316611a6d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610744565b6001600160a01b038216611acf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610744565b611ada8383836121be565b6001600160a01b03831660009081526065602052604090205481811015611b525760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610744565b6001600160a01b03808516600090815260656020526040808220858503905591851681529081208054849290611b899084906132fa565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bd591815260200190565b60405180910390a3611a038484846121c9565b6033546001600160a01b03163314610bc55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610744565b61029054604080519182526020820183905233917f53f0b6b34c97fd1733ccb4b21aea7549d7ad3a83e6316864417b8cc1a9a9a807910160405180910390a261029055565b60006108b17f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611cb761012c5490565b61012d546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b611d0c6121d4565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610a79828261221f565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de4919061330d565b806108b157505060975460ff1690565b600063ffffffff821115611e595760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610744565b5090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611eb76122ab565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d393390565b600054610100900460ff16611f135760405162461bcd60e51b8152600401610744906133d5565b610bc533611e5d565b600054610100900460ff16611f435760405162461bcd60e51b8152600401610744906133d5565b611f4b6122f3565b611f536122f3565b611f5b61231a565b611f636122f3565b611f8683604051806040016040528060018152602001603160f81b81525061234d565b611f8f83612390565b611f976122f3565b611f9f6123b7565b611fa76122f3565b611faf6122f3565b611fb76122f3565b611fbf612440565b611fc76122f3565b611fd182826124d2565b505050565b610a798282612512565b60606001600160a01b0383163b6120485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610744565b600080846001600160a01b0316846040516120639190613420565b600060405180830381855af49150503d806000811461209e576040519150601f19603f3d011682016040523d82523d6000602084013e6120a3565b606091505b50915091506120cb82826040518060600160405280602781526020016135836027913961252a565b95945050505050565b6001600160a01b0381166000908152610160602052604090208054600181018255905b50919050565b600061067361210a611c87565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061215c87878787612563565b9150915061216981612650565b5095945050505050565b611fd1838383611a09565b60006001600160e01b03198216630e46e23b60e31b1480610673575061067382612806565b60006121b2600284841861343c565b61076f908484166132fa565b611fd183838361282b565b611fd183838361289f565b6121dc610b87565b610bc55760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610744565b61222982826128aa565b6067546001600160e01b03101561229d5760405162461bcd60e51b815260206004820152603260248201527f4552433230486973746f72793a20746f74616c20737570706c79207269736b73604482015271206f766572666c6f77696e6720766f74657360701b6064820152608401610744565b611a0360fc61299d836129a9565b6122b3610b87565b15610bc55760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610744565b600054610100900460ff16610bc55760405162461bcd60e51b8152600401610744906133d5565b600054610100900460ff166123415760405162461bcd60e51b8152600401610744906133d5565b6097805460ff19169055565b600054610100900460ff166123745760405162461bcd60e51b8152600401610744906133d5565b81516020928301208151919092012061012c9190915561012d55565b600054610100900460ff16610a645760405162461bcd60e51b8152600401610744906133d5565b600054610100900460ff166123de5760405162461bcd60e51b8152600401610744906133d5565b6040516bffffffffffffffffffffffff193060601b1660208201527fca36d5a0569842341b54d50138a85347289de5969cb525e882bbb1a2dedcfef9603482015260540160408051601f19818403018152919052805160209091012061025b55565b600054610100900460ff166124675760405162461bcd60e51b8152600401610744906133d5565b6040516bffffffffffffffffffffffff193060601b1660208201527ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb1603482015260540160408051601f19818403018152919052805160209091012061028f55610bc5600019611c42565b600054610100900460ff166124f95760405162461bcd60e51b8152600401610744906133d5565b606861250583826134ac565b506069611fd182826134ac565b61251c8282612b22565b611a0360fc612c83836129a9565b6060831561253957508161076f565b8251156125495782518084602001fd5b8160405162461bcd60e51b81526004016107449190612f8b565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561259a5750600090506003612647565b8460ff16601b141580156125b257508460ff16601c14155b156125c35750600090506004612647565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612617573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661264057600060019250925050612647565b9150600090505b94509492505050565b60008160048111156126645761266461356c565b0361266c5750565b60018160048111156126805761268061356c565b036126cd5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610744565b60028160048111156126e1576126e161356c565b0361272e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610744565b60038160048111156127425761274261356c565b0361279a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610744565b60048160048111156127ae576127ae61356c565b03610a645760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610744565b60006001600160e01b031982166303ae494f60e61b1480610673575061067382612c8f565b612836838383612cb4565b61283e612d1c565b1561284857505050565b6128538383836115df565b611fd15760405162461bcd60e51b815260206004820152601e60248201527f455243323047756172643a204d495353494e475f50524956494c4547455300006044820152606401610744565b611fd1838383612d36565b6001600160a01b0382166129005760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610744565b61290c600083836121be565b806067600082825461291e91906132fa565b90915550506001600160a01b0382166000908152606560205260408120805483929061294b9084906132fa565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610a79600083836121c9565b600061076f82846132fa565b8254600090819080156129f457856129c26001836133c2565b815481106129d2576129d2613345565b60009182526020909120015464010000000090046001600160e01b03166129f7565b60005b6001600160e01b03169250612a1083858763ffffffff16565b9150600081118015612a4e57504386612a2a6001846133c2565b81548110612a3a57612a3a613345565b60009182526020909120015463ffffffff16145b15612aae57612a5c82612e73565b86612a686001846133c2565b81548110612a7857612a78613345565b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b03160217905550612b19565b856040518060400160405280612ac343611df4565b63ffffffff168152602001612ad785612e73565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b6001600160a01b038216612b825760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610744565b612b8e826000836121be565b6001600160a01b03821660009081526065602052604090205481811015612c025760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610744565b6001600160a01b0383166000908152606560205260408120838303905560678054849290612c319084906133c2565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611fd1836000846121c9565b600061076f82846133c2565b60006001600160e01b0319821663b55bd4f760e01b1480610673575061067382612edc565b612cbc610b87565b15611fd15760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b6064820152608401610744565b61025c5460009060ff16612d305750600090565b50600190565b816001600160a01b0316836001600160a01b031614158015612d585750600081115b15611fd1576001600160a01b03831615612de6576001600160a01b038316600090815260fb602052604081208190612d9390612c83856129a9565b91509150846001600160a01b03167faeeb0cb16f299136e7e5467ea84217150fe83008833064528f360cde7b7b54c38383604051612ddb929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611fd1576001600160a01b038216600090815260fb602052604081208190612e1c9061299d856129a9565b91509150836001600160a01b03167faeeb0cb16f299136e7e5467ea84217150fe83008833064528f360cde7b7b54c38383604051612e64929190918252602082015260400190565b60405180910390a25050505050565b60006001600160e01b03821115611e595760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610744565b60006001600160e01b0319821663d86f1ca160e01b148061067357506301ffc9a760e01b6001600160e01b0319831614610673565b600060208284031215612f2357600080fd5b81356001600160e01b03198116811461076f57600080fd5b60005b83811015612f56578181015183820152602001612f3e565b50506000910152565b60008151808452612f77816020860160208601612f3b565b601f01601f19169290920160200192915050565b60208152600061076f6020830184612f5f565b6001600160a01b0381168114610a6457600080fd5b60008060408385031215612fc657600080fd5b8235612fd181612f9e565b946020939093013593505050565b600080600060608486031215612ff457600080fd5b8335612fff81612f9e565b9250602084013561300f81612f9e565b929592945050506040919091013590565b60006020828403121561303257600080fd5b5035919050565b60006020828403121561304b57600080fd5b813561076f81612f9e565b6000806040838503121561306957600080fd5b82359150602083013561307b81612f9e565b809150509250929050565b6000806020838503121561309957600080fd5b823567ffffffffffffffff808211156130b157600080fd5b818501915085601f8301126130c557600080fd5b8135818111156130d457600080fd5b8660208260051b85010111156130e957600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561315057603f1988860301845261313e858351612f5f565b94509285019290850190600101613122565b5092979650505050505050565b600080600080600080600060e0888a03121561317857600080fd5b873561318381612f9e565b9650602088013561319381612f9e565b95506040880135945060608801359350608088013560ff811681146131b757600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156131e757600080fd5b82356131f281612f9e565b9150602083013561307b81612f9e565b6000806040838503121561321557600080fd5b823561322081612f9e565b9150602083013563ffffffff8116811461307b57600080fd5b600181811c9082168061324d57607f821691505b6020821081036120f757634e487b7160e01b600052602260045260246000fd5b60208082526021908201527f4552433230486973746f72793a20626c6f636b206e6f7420796574206d696e656040820152601960fa1b606082015260800190565b6000602082840312156132c057600080fd5b815161076f81612f9e565b6000602082840312156132dd57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610673576106736132e4565b60006020828403121561331f57600080fd5b8151801515811461076f57600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261337257600080fd5b83018035915067ffffffffffffffff82111561338d57600080fd5b6020019150368190038213156133a257600080fd5b9250929050565b6000600182016133bb576133bb6132e4565b5060010190565b81810381811115610673576106736132e4565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613432818460208701612f3b565b9190910192915050565b60008261345957634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fd157600081815260208120601f850160051c810160208610156134855750805b601f850160051c820191505b818110156134a457828155600101613491565b505050505050565b815167ffffffffffffffff8111156134c6576134c661332f565b6134da816134d48454613239565b8461345e565b602080601f83116001811461350f57600084156134f75750858301515b600019600386901b1c1916600185901b1785556134a4565b600085815260208120601f198616915b8281101561353e5788860151825594840194600190910190840161351f565b508582101561355c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000812000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102695760003560e01c80636fcfff4511610151578063a457c2d7116100c3578063dd62ed3e11610087578063dd62ed3e14610585578063eb9253c014610598578063eec47d60146105ab578063f1127ed8146105b5578063f2fde38b146105f2578063f37d11cc1461060557600080fd5b8063a457c2d714610522578063a9059cbb14610535578063ac9650d814610548578063c72460ee14610568578063d505accf1461057257600080fd5b80638da5cb5b116101155780638da5cb5b146104bd5780638e539e8c146104ce57806391d14854146104e15780639498bd71146104f457806395d89b41146105075780639dc29fac1461050f57600080fd5b80636fcfff451461044957806370a0823114610471578063715018a61461049a5780637ecebe00146104a25780638456cb59146104b557600080fd5b80632a7a0c68116101ea5780633e0dc34e116101ae5780633e0dc34e146103c85780633f4ba83a146103d257806340c10f19146103dc5780634b63885a146103ef5780635c975abb1461040257806363727fc21461040a57600080fd5b80632a7a0c68146103505780633013928014610377578063313ce5671461039e5780633644e515146103ad57806339509351146103b557600080fd5b80631e26571f116102315780631e26571f146102e7578063227102a6146102f057806323b872dd14610317578063248a9ca31461032a5780632772ce9d1461033d57600080fd5b806301ffc9a71461026e57806306fdde0314610296578063095ea7b3146102ab5780630df86999146102be57806318160ddd146102df575b600080fd5b61028161027c366004612f11565b610618565b60405190151581526020015b60405180910390f35b61029e610679565b60405161028d9190612f8b565b6102816102b9366004612fb3565b61070b565b6102d16102cc366004612fb3565b610723565b60405190815260200161028d565b6067546102d1565b610290546102d1565b6102d17ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb181565b610281610325366004612fdf565b610776565b6102d1610338366004613020565b61079a565b61028161034b366004613020565b61088c565b6102d17f000000000000000000000000000000000000000000000000000000000000000081565b6102d17fca36d5a0569842341b54d50138a85347289de5969cb525e882bbb1a2dedcfef981565b6040516012815260200161028d565b6102d16108a7565b6102816103c3366004612fb3565b6108b6565b6102d16103275481565b6103da6108d8565b005b6103da6103ea366004612fb3565b610a67565b6102816103fd366004613039565b610a7d565b610281610b87565b6104317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161028d565b61045c610457366004613039565b610b91565b60405163ffffffff909116815260200161028d565b6102d161047f366004613039565b6001600160a01b031660009081526065602052604090205490565b6103da610bb3565b6102d16104b0366004613039565b610bc7565b6103da610be6565b6033546001600160a01b0316610431565b6102d16104dc366004613020565b610d72565b6102816104ef366004613056565b610d9e565b6103da610502366004613020565b610e95565b61029e611016565b6103da61051d366004612fb3565b611025565b610281610530366004612fb3565b611037565b610281610543366004612fb3565b6110b2565b61055b610556366004613086565b6110c0565b60405161028d91906130fb565b6102d161025b5481565b6103da61058036600461315d565b6111b5565b6102d16105933660046131d4565b611319565b6103da6105a6366004612fb3565b611344565b6102d161028f5481565b6105c86105c3366004613202565b6114e5565b60408051825163ffffffff1681526020928301516001600160e01b0316928101929092520161028d565b6103da610600366004613039565b611569565b610281610613366004612fdf565b6115df565b60006001600160e01b031982166336372b0760e01b148061064957506001600160e01b03198216634ec7fbed60e11b145b8061066457506001600160e01b031982166383abf71560e01b145b80610673575061067382611789565b92915050565b60606068805461068890613239565b80601f01602080910402602001604051908101604052809291908181526020018280546106b490613239565b80156107015780601f106106d657610100808354040283529160200191610701565b820191906000526020600020905b8154815290600101906020018083116106e457829003601f168201915b5050505050905090565b6000336107198185856117ae565b5060019392505050565b600043821061074d5760405162461bcd60e51b81526004016107449061326d565b60405180910390fd5b6001600160a01b038316600090815260fb6020526040902061076f90836118d2565b9392505050565b60003361078485828561198f565b61078f858585611a09565b506001949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081e91906132ae565b6001600160a01b031663248a9ca3836040518263ffffffff1660e01b815260040161084b91815260200190565b602060405180830381865afa158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067391906132cb565b6000610896611be8565b61089f82611c42565b506001919050565b60006108b1611c87565b905090565b6000336107198185856108c98383611319565b6108d391906132fa565b6117ae565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610945573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096991906132ae565b6001600160a01b03161480610a105750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0591906132ae565b6001600160a01b0316145b610a5c5760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c79006044820152606401610744565b610a64611d04565b50565b610a6f611be8565b610a798282611d56565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0191906132ae565b6001600160a01b031663253bd7b783610b1a6102905490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015610b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610673919061330d565b60006108b1611d60565b6001600160a01b038116600090815260fb602052604081205461067390611df4565b610bbb611be8565b610bc56000611e5d565b565b6001600160a01b03811660009081526101606020526040812054610673565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7791906132ae565b6001600160a01b03161480610d1e5750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1391906132ae565b6001600160a01b0316145b610d6a5760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c79006044820152606401610744565b610a64611eaf565b6000438210610d935760405162461bcd60e51b81526004016107449061326d565b61067360fc836118d2565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2291906132ae565b604051632474521560e21b8152600481018590526001600160a01b03848116602483015291909116906391d1485490604401602060405180830381865afa158015610e71573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076f919061330d565b600054610100900460ff1615808015610eb55750600054600160ff909116105b80610ecf5750303b158015610ecf575060005460ff166001145b610f325760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610744565b6000805460ff191660011790558015610f55576000805461ff0019166101001790555b610f5d611eec565b610fc760405180604001604052806004815260200163534f4d4160e01b8152506040518060400160405280600e81526020016d29b7b6b09024a7aa902a37b5b2b760911b81525060405180604001604052806005815260200164732d696f7560d81b815250611f1c565b6103278290558015610a79576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60606069805461068890613239565b61102d611be8565b610a798282611fd6565b600033816110458286611319565b9050838110156110a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610744565b61078f82868684036117ae565b600033610719818585611a09565b60608167ffffffffffffffff8111156110db576110db61332f565b60405190808252806020026020018201604052801561110e57816020015b60608152602001906001900390816110f95790505b50905060005b828110156111ae5761117e3085858481811061113257611132613345565b9050602002810190611144919061335b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fe092505050565b82828151811061119057611190613345565b602002602001018190525080806111a6906133a9565b915050611114565b5092915050565b834211156112055760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610744565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886112348c6120d4565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061128f826120fd565b9050600061129f8287878761214b565b9050896001600160a01b0316816001600160a01b0316146113025760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610744565b61130d8a8a8a6117ae565b50505050505050505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b61025c805460ff19166001179055600061135b3390565b905061136a61025b5482610d9e565b8061139a575061139a7fca36d5a0569842341b54d50138a85347289de5969cb525e882bbb1a2dedcfef982610d9e565b6113e65760405162461bcd60e51b815260206004820152601e60248201527f5365697a61626c6553656375726974793a20554e415554484f52495a454400006044820152606401610744565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ff0d1a606040518163ffffffff1660e01b8152600401602060405180830381865afa158015611446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146a91906132ae565b9050611477848285612173565b806001600160a01b0316846001600160a01b03166114923390565b6001600160a01b03167fa9aec5d8b86e2fa2fd6ac3af62f2622e3dfdab1967d4cbbb56a5df7d74cb887c866040516114cc91815260200190565b60405180910390a4505061025c805460ff191690555050565b60408051808201909152600080825260208201526001600160a01b038316600090815260fb60205260409020805463ffffffff841690811061152957611529613345565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b611571611be8565b6001600160a01b0381166115d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610744565b610a6481611e5d565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611640573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166491906132ae565b905060006116726102905490565b90506001600160a01b03861615806116f6575060405163253bd7b760e01b81526001600160a01b0387811660048301526024820183905283169063253bd7b790604401602060405180830381865afa1580156116d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f6919061330d565b801561177f57506001600160a01b038516158061177f575060405163253bd7b760e01b81526001600160a01b0386811660048301526024820183905283169063253bd7b790604401602060405180830381865afa15801561175b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177f919061330d565b9695505050505050565b60006001600160e01b03198216633cdf447360e21b148061067357506106738261217e565b6001600160a01b0383166118105760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610744565b6001600160a01b0382166118715760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610744565b6001600160a01b0383811660008181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b8154600090815b818110156119365760006118ed82846121a3565b90508486828154811061190257611902613345565b60009182526020909120015463ffffffff16111561192257809250611930565b61192d8160016132fa565b91505b506118d9565b811561197a57846119486001846133c2565b8154811061195857611958613345565b60009182526020909120015464010000000090046001600160e01b031661197d565b60005b6001600160e01b031695945050505050565b600061199b8484611319565b90506000198114611a0357818110156119f65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610744565b611a0384848484036117ae565b50505050565b6001600160a01b038316611a6d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610744565b6001600160a01b038216611acf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610744565b611ada8383836121be565b6001600160a01b03831660009081526065602052604090205481811015611b525760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610744565b6001600160a01b03808516600090815260656020526040808220858503905591851681529081208054849290611b899084906132fa565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bd591815260200190565b60405180910390a3611a038484846121c9565b6033546001600160a01b03163314610bc55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610744565b61029054604080519182526020820183905233917f53f0b6b34c97fd1733ccb4b21aea7549d7ad3a83e6316864417b8cc1a9a9a807910160405180910390a261029055565b60006108b17f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611cb761012c5490565b61012d546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b611d0c6121d4565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610a79828261221f565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de4919061330d565b806108b157505060975460ff1690565b600063ffffffff821115611e595760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610744565b5090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611eb76122ab565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d393390565b600054610100900460ff16611f135760405162461bcd60e51b8152600401610744906133d5565b610bc533611e5d565b600054610100900460ff16611f435760405162461bcd60e51b8152600401610744906133d5565b611f4b6122f3565b611f536122f3565b611f5b61231a565b611f636122f3565b611f8683604051806040016040528060018152602001603160f81b81525061234d565b611f8f83612390565b611f976122f3565b611f9f6123b7565b611fa76122f3565b611faf6122f3565b611fb76122f3565b611fbf612440565b611fc76122f3565b611fd182826124d2565b505050565b610a798282612512565b60606001600160a01b0383163b6120485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610744565b600080846001600160a01b0316846040516120639190613420565b600060405180830381855af49150503d806000811461209e576040519150601f19603f3d011682016040523d82523d6000602084013e6120a3565b606091505b50915091506120cb82826040518060600160405280602781526020016135836027913961252a565b95945050505050565b6001600160a01b0381166000908152610160602052604090208054600181018255905b50919050565b600061067361210a611c87565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061215c87878787612563565b9150915061216981612650565b5095945050505050565b611fd1838383611a09565b60006001600160e01b03198216630e46e23b60e31b1480610673575061067382612806565b60006121b2600284841861343c565b61076f908484166132fa565b611fd183838361282b565b611fd183838361289f565b6121dc610b87565b610bc55760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610744565b61222982826128aa565b6067546001600160e01b03101561229d5760405162461bcd60e51b815260206004820152603260248201527f4552433230486973746f72793a20746f74616c20737570706c79207269736b73604482015271206f766572666c6f77696e6720766f74657360701b6064820152608401610744565b611a0360fc61299d836129a9565b6122b3610b87565b15610bc55760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610744565b600054610100900460ff16610bc55760405162461bcd60e51b8152600401610744906133d5565b600054610100900460ff166123415760405162461bcd60e51b8152600401610744906133d5565b6097805460ff19169055565b600054610100900460ff166123745760405162461bcd60e51b8152600401610744906133d5565b81516020928301208151919092012061012c9190915561012d55565b600054610100900460ff16610a645760405162461bcd60e51b8152600401610744906133d5565b600054610100900460ff166123de5760405162461bcd60e51b8152600401610744906133d5565b6040516bffffffffffffffffffffffff193060601b1660208201527fca36d5a0569842341b54d50138a85347289de5969cb525e882bbb1a2dedcfef9603482015260540160408051601f19818403018152919052805160209091012061025b55565b600054610100900460ff166124675760405162461bcd60e51b8152600401610744906133d5565b6040516bffffffffffffffffffffffff193060601b1660208201527ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb1603482015260540160408051601f19818403018152919052805160209091012061028f55610bc5600019611c42565b600054610100900460ff166124f95760405162461bcd60e51b8152600401610744906133d5565b606861250583826134ac565b506069611fd182826134ac565b61251c8282612b22565b611a0360fc612c83836129a9565b6060831561253957508161076f565b8251156125495782518084602001fd5b8160405162461bcd60e51b81526004016107449190612f8b565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561259a5750600090506003612647565b8460ff16601b141580156125b257508460ff16601c14155b156125c35750600090506004612647565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612617573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661264057600060019250925050612647565b9150600090505b94509492505050565b60008160048111156126645761266461356c565b0361266c5750565b60018160048111156126805761268061356c565b036126cd5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610744565b60028160048111156126e1576126e161356c565b0361272e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610744565b60038160048111156127425761274261356c565b0361279a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610744565b60048160048111156127ae576127ae61356c565b03610a645760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610744565b60006001600160e01b031982166303ae494f60e61b1480610673575061067382612c8f565b612836838383612cb4565b61283e612d1c565b1561284857505050565b6128538383836115df565b611fd15760405162461bcd60e51b815260206004820152601e60248201527f455243323047756172643a204d495353494e475f50524956494c4547455300006044820152606401610744565b611fd1838383612d36565b6001600160a01b0382166129005760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610744565b61290c600083836121be565b806067600082825461291e91906132fa565b90915550506001600160a01b0382166000908152606560205260408120805483929061294b9084906132fa565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610a79600083836121c9565b600061076f82846132fa565b8254600090819080156129f457856129c26001836133c2565b815481106129d2576129d2613345565b60009182526020909120015464010000000090046001600160e01b03166129f7565b60005b6001600160e01b03169250612a1083858763ffffffff16565b9150600081118015612a4e57504386612a2a6001846133c2565b81548110612a3a57612a3a613345565b60009182526020909120015463ffffffff16145b15612aae57612a5c82612e73565b86612a686001846133c2565b81548110612a7857612a78613345565b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b03160217905550612b19565b856040518060400160405280612ac343611df4565b63ffffffff168152602001612ad785612e73565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b6001600160a01b038216612b825760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610744565b612b8e826000836121be565b6001600160a01b03821660009081526065602052604090205481811015612c025760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610744565b6001600160a01b0383166000908152606560205260408120838303905560678054849290612c319084906133c2565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611fd1836000846121c9565b600061076f82846133c2565b60006001600160e01b0319821663b55bd4f760e01b1480610673575061067382612edc565b612cbc610b87565b15611fd15760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b6064820152608401610744565b61025c5460009060ff16612d305750600090565b50600190565b816001600160a01b0316836001600160a01b031614158015612d585750600081115b15611fd1576001600160a01b03831615612de6576001600160a01b038316600090815260fb602052604081208190612d9390612c83856129a9565b91509150846001600160a01b03167faeeb0cb16f299136e7e5467ea84217150fe83008833064528f360cde7b7b54c38383604051612ddb929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611fd1576001600160a01b038216600090815260fb602052604081208190612e1c9061299d856129a9565b91509150836001600160a01b03167faeeb0cb16f299136e7e5467ea84217150fe83008833064528f360cde7b7b54c38383604051612e64929190918252602082015260400190565b60405180910390a25050505050565b60006001600160e01b03821115611e595760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610744565b60006001600160e01b0319821663d86f1ca160e01b148061067357506301ffc9a760e01b6001600160e01b0319831614610673565b600060208284031215612f2357600080fd5b81356001600160e01b03198116811461076f57600080fd5b60005b83811015612f56578181015183820152602001612f3e565b50506000910152565b60008151808452612f77816020860160208601612f3b565b601f01601f19169290920160200192915050565b60208152600061076f6020830184612f5f565b6001600160a01b0381168114610a6457600080fd5b60008060408385031215612fc657600080fd5b8235612fd181612f9e565b946020939093013593505050565b600080600060608486031215612ff457600080fd5b8335612fff81612f9e565b9250602084013561300f81612f9e565b929592945050506040919091013590565b60006020828403121561303257600080fd5b5035919050565b60006020828403121561304b57600080fd5b813561076f81612f9e565b6000806040838503121561306957600080fd5b82359150602083013561307b81612f9e565b809150509250929050565b6000806020838503121561309957600080fd5b823567ffffffffffffffff808211156130b157600080fd5b818501915085601f8301126130c557600080fd5b8135818111156130d457600080fd5b8660208260051b85010111156130e957600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561315057603f1988860301845261313e858351612f5f565b94509285019290850190600101613122565b5092979650505050505050565b600080600080600080600060e0888a03121561317857600080fd5b873561318381612f9e565b9650602088013561319381612f9e565b95506040880135945060608801359350608088013560ff811681146131b757600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156131e757600080fd5b82356131f281612f9e565b9150602083013561307b81612f9e565b6000806040838503121561321557600080fd5b823561322081612f9e565b9150602083013563ffffffff8116811461307b57600080fd5b600181811c9082168061324d57607f821691505b6020821081036120f757634e487b7160e01b600052602260045260246000fd5b60208082526021908201527f4552433230486973746f72793a20626c6f636b206e6f7420796574206d696e656040820152601960fa1b606082015260800190565b6000602082840312156132c057600080fd5b815161076f81612f9e565b6000602082840312156132dd57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610673576106736132e4565b60006020828403121561331f57600080fd5b8151801515811461076f57600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261337257600080fd5b83018035915067ffffffffffffffff82111561338d57600080fd5b6020019150368190038213156133a257600080fd5b9250929050565b6000600182016133bb576133bb6132e4565b5060010190565b81810381811115610673576106736132e4565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613432818460208701612f3b565b9190910192915050565b60008261345957634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fd157600081815260208120601f850160051c810160208610156134855750805b601f850160051c820191505b818110156134a457828155600101613491565b505050505050565b815167ffffffffffffffff8111156134c6576134c661332f565b6134da816134d48454613239565b8461345e565b602080601f83116001811461350f57600084156134f75750858301515b600019600386901b1c1916600185901b1785556134a4565b600085815260208120601f198616915b8281101561353e5788860151825594840194600190910190840161351f565b508582101561355c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000812000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
