{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC1155Token",
  "sourceName": "contracts/test/ERC1155Token.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "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": 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"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        }
      ],
      "name": "balanceOfBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "offset",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "getStorageAt",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "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": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "mintBatch",
      "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": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchTransferFrom",
      "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": "amount",
          "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": "address",
          "name": "targetContract",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "calldataPayload",
          "type": "bytes"
        }
      ],
      "name": "simulateAndRevert",
      "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": "address",
          "name": "fallbackHandler",
          "type": "address"
        }
      ],
      "name": "trickFallbackHandler",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "uri",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280601381526020017f68747470733a2f2f6578616d706c652e636f6d00000000000000000000000000815250620000606301ffc9a760e01b620000a860201b60201c565b6200007181620001b160201b60201c565b6200008963d9b67a2660e01b620000a860201b60201c565b620000a1630e89341c60e01b620000a860201b60201c565b5062000283565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141562000145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b8060039080519060200190620001c9929190620001cd565b5050565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000205576000855562000251565b82601f106200022057805160ff191683800117855562000251565b8280016001018555821562000251579182015b828111156200025057825182559160200191906001019062000233565b5b50905062000260919062000264565b5090565b5b808211156200027f57600081600090555060010162000265565b5090565b612b3880620002936000396000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80635624b25b1161008c578063b4faba0911610066578063b4faba09146108f4578063dbaabecb146109cf578063e985e9c514610a13578063f242432a14610a8d576100ce565b80635624b25b14610746578063731133e9146107f7578063a22cb465146108a4576100ce565b8062fdd58e146100d357806301ffc9a7146101355780630e89341c146101985780631f7fdffa1461023f5780632eb2c2d6146103825780634e1273f4146105a5575b600080fd5b61011f600480360360408110156100e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b9c565b6040518082815260200191505060405180910390f35b6101806004803603602081101561014b57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610c7c565b60405180821515815260200191505060405180910390f35b6101c4600480360360208110156101ae57600080fd5b8101908080359060200190929190505050610ce3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102045780820151818401526020810190506101e9565b50505050905090810190601f1680156102315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103806004803603608081101561025557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561029257600080fd5b8201836020820111156102a457600080fd5b803590602001918460208302840111640100000000831117156102c657600080fd5b9091929391929390803590602001906401000000008111156102e757600080fd5b8201836020820111156102f957600080fd5b8035906020019184602083028401116401000000008311171561031b57600080fd5b90919293919293908035906020019064010000000081111561033c57600080fd5b82018360208201111561034e57600080fd5b8035906020019184600183028401116401000000008311171561037057600080fd5b9091929391929390505050610d87565b005b6105a3600480360360a081101561039857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156103f557600080fd5b82018360208201111561040757600080fd5b8035906020019184602083028401116401000000008311171561042957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561048957600080fd5b82018360208201111561049b57600080fd5b803590602001918460208302840111640100000000831117156104bd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561051d57600080fd5b82018360208201111561052f57600080fd5b8035906020019184600183028401116401000000008311171561055157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e62565b005b6106ef600480360360408110156105bb57600080fd5b81019080803590602001906401000000008111156105d857600080fd5b8201836020820111156105ea57600080fd5b8035906020019184602083028401116401000000008311171561060c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561066c57600080fd5b82018360208201111561067e57600080fd5b803590602001918460208302840111640100000000831117156106a057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506112ed565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610732578082015181840152602081019050610717565b505050509050019250505060405180910390f35b61077c6004803603604081101561075c57600080fd5b8101908080359060200190929190803590602001909291905050506113ff565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107bc5780820151818401526020810190506107a1565b50505050905090810190601f1680156107e95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108a26004803603608081101561080d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561085e57600080fd5b82018360208201111561087057600080fd5b8035906020019184600183028401116401000000008311171561089257600080fd5b9091929391929390505050611485565b005b6108f2600480360360408110156108ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506114dc565b005b6109cd6004803603604081101561090a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561094757600080fd5b82018360208201111561095957600080fd5b8035906020019184600183028401116401000000008311171561097b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611675565b005b610a11600480360360208110156109e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061169c565b005b610a7560048036036040811015610a2957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116c2565b60405180821515815260200191505060405180910390f35b610b9a600480360360a0811015610aa357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190640100000000811115610b1457600080fd5b820183602082011115610b2657600080fd5b80359060200191846001830284011164010000000083111715610b4857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611756565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612993602b913960400191505060405180910390fd5b6001600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d7b5780601f10610d5057610100808354040283529160200191610d7b565b820191906000526020600020905b815481529060010190602001808311610d5e57829003601f168201915b50505050509050919050565b610e5987878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611acb565b50505050505050565b8151835114610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612aba6028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610f42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806129e76025913960400191505060405180910390fd5b610f4a611ded565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610f905750610f8f85610f8a611ded565b6116c2565b5b610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612a0c6032913960400191505060405180910390fd5b6000610fef611ded565b9050610fff818787878787611df5565b60005b84518110156111d057600085828151811061101957fe5b60200260200101519050600085838151811061103157fe5b602002602001015190506110b8816040518060600160405280602a8152602001612a3e602a91396001600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dfd9092919063ffffffff16565b6001600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061116f816001600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb790919063ffffffff16565b6001600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611002565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611280578082015181840152602081019050611265565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156112c25780820151818401526020810190506112a7565b5050505090500194505050505060405180910390a46112e5818787878787611f3f565b505050505050565b60608151835114611349576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612a916029913960400191505060405180910390fd5b6000835167ffffffffffffffff8111801561136357600080fd5b506040519080825280602002602001820160405280156113925781602001602082028036833780820191505090505b50905060005b84518110156113f4576113d18582815181106113b057fe5b60200260200101518583815181106113c457fe5b6020026020010151610b9c565b8282815181106113dd57fe5b602002602001018181525050806001019050611398565b508091505092915050565b60606000600583901b67ffffffffffffffff8111801561141e57600080fd5b506040519080825280601f01601f1916602001820160405280156114515781602001600182028036833780820191505090505b50905060005b8381101561147a5780850154806020830260208501015250806001019050611457565b508091505092915050565b6114d585858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506122ce565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166114fb611ded565b73ffffffffffffffffffffffffffffffffffffffff161415611568576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612a686029913960400191505060405180910390fd5b8060026000611575611ded565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611622611ded565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600080825160208401855af46040518181523d60208201523d6000604083013e60403d0181fd5b807f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d55550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806129e76025913960400191505060405180910390fd5b6117e4611ded565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061182a575061182985611824611ded565b6116c2565b5b61187f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806129be6029913960400191505060405180910390fd5b6000611889611ded565b90506118a981878761189a886124d1565b6118a3886124d1565b87611df5565b611926836040518060600160405280602a8152602001612a3e602a91396001600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dfd9092919063ffffffff16565b6001600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119dd836001600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb790919063ffffffff16565b6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a4611ac3818787878787612542565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ae26021913960400191505060405180910390fd5b8151835114611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612aba6028913960400191505060405180910390fd5b6000611bb5611ded565b9050611bc681600087878787611df5565b60005b8451811015611ccf57611c5b60016000878481518110611be557fe5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054858381518110611c4557fe5b6020026020010151611eb790919063ffffffff16565b60016000878481518110611c6b57fe5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050611bc9565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611d80578082015181840152602081019050611d65565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611dc2578082015181840152602081019050611da7565b5050505090500194505050505060405180910390a4611de681600087878787611f3f565b5050505050565b600033905090565b505050505050565b6000838311158290611eaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6f578082015181840152602081019050611e54565b50505050905090810190601f168015611e9c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015611f35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b611f5e8473ffffffffffffffffffffffffffffffffffffffff1661284f565b156122c6578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015612016578082015181840152602081019050611ffb565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561205857808201518184015260208101905061203d565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561209757808201518184015260208101905061207c565b50505050905090810190601f1680156120c45780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b1580156120e957600080fd5b505af192505050801561211d57506040513d602081101561210957600080fd5b810190808051906020019092919050505060015b61222757612129612880565b8061213457506121d6565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561219b578082015181840152602081019050612180565b50505050905090810190601f1680156121c85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806129376034913960400191505060405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061296b6028913960400191505060405180910390fd5b505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612354576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ae26021913960400191505060405180910390fd5b600061235e611ded565b905061237f81600087612370886124d1565b612379886124d1565b87611df5565b6123e2836001600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb790919063ffffffff16565b6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a46124ca81600087878787612542565b5050505050565b60606000600167ffffffffffffffff811180156124ed57600080fd5b5060405190808252806020026020018201604052801561251c5781602001602082028036833780820191505090505b509050828160008151811061252d57fe5b60200260200101818152505080915050919050565b6125618473ffffffffffffffffffffffffffffffffffffffff1661284f565b15612847578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561261a5780820151818401526020810190506125ff565b50505050905090810190601f1680156126475780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561266a57600080fd5b505af192505050801561269e57506040513d602081101561268a57600080fd5b810190808051906020019092919050505060015b6127a8576126aa612880565b806126b55750612757565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561271c578082015181840152602081019050612701565b50505050905090810190601f1680156127495780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806129376034913960400191505060405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061296b6028913960400191505060405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d101561289057612933565b60046000803e6128a1600051612873565b6308c379a081146128b25750612933565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156128de57505050612933565b808201805167ffffffffffffffff8111156128fd575050505050612933565b8060208301013d850181111561291857505050505050612933565b61292182612862565b60208401016040528296505050505050505b9056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368455243313135353a206d696e7420746f20746865207a65726f2061646472657373a2646970667358221220f19f248c56577f5fa53609a0dc21bf09993bb055d129245307f9dc2285429f2864736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ce5760003560e01c80635624b25b1161008c578063b4faba0911610066578063b4faba09146108f4578063dbaabecb146109cf578063e985e9c514610a13578063f242432a14610a8d576100ce565b80635624b25b14610746578063731133e9146107f7578063a22cb465146108a4576100ce565b8062fdd58e146100d357806301ffc9a7146101355780630e89341c146101985780631f7fdffa1461023f5780632eb2c2d6146103825780634e1273f4146105a5575b600080fd5b61011f600480360360408110156100e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b9c565b6040518082815260200191505060405180910390f35b6101806004803603602081101561014b57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610c7c565b60405180821515815260200191505060405180910390f35b6101c4600480360360208110156101ae57600080fd5b8101908080359060200190929190505050610ce3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102045780820151818401526020810190506101e9565b50505050905090810190601f1680156102315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103806004803603608081101561025557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561029257600080fd5b8201836020820111156102a457600080fd5b803590602001918460208302840111640100000000831117156102c657600080fd5b9091929391929390803590602001906401000000008111156102e757600080fd5b8201836020820111156102f957600080fd5b8035906020019184602083028401116401000000008311171561031b57600080fd5b90919293919293908035906020019064010000000081111561033c57600080fd5b82018360208201111561034e57600080fd5b8035906020019184600183028401116401000000008311171561037057600080fd5b9091929391929390505050610d87565b005b6105a3600480360360a081101561039857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156103f557600080fd5b82018360208201111561040757600080fd5b8035906020019184602083028401116401000000008311171561042957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561048957600080fd5b82018360208201111561049b57600080fd5b803590602001918460208302840111640100000000831117156104bd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561051d57600080fd5b82018360208201111561052f57600080fd5b8035906020019184600183028401116401000000008311171561055157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e62565b005b6106ef600480360360408110156105bb57600080fd5b81019080803590602001906401000000008111156105d857600080fd5b8201836020820111156105ea57600080fd5b8035906020019184602083028401116401000000008311171561060c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561066c57600080fd5b82018360208201111561067e57600080fd5b803590602001918460208302840111640100000000831117156106a057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506112ed565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610732578082015181840152602081019050610717565b505050509050019250505060405180910390f35b61077c6004803603604081101561075c57600080fd5b8101908080359060200190929190803590602001909291905050506113ff565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107bc5780820151818401526020810190506107a1565b50505050905090810190601f1680156107e95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108a26004803603608081101561080d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561085e57600080fd5b82018360208201111561087057600080fd5b8035906020019184600183028401116401000000008311171561089257600080fd5b9091929391929390505050611485565b005b6108f2600480360360408110156108ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506114dc565b005b6109cd6004803603604081101561090a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561094757600080fd5b82018360208201111561095957600080fd5b8035906020019184600183028401116401000000008311171561097b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611675565b005b610a11600480360360208110156109e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061169c565b005b610a7560048036036040811015610a2957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116c2565b60405180821515815260200191505060405180910390f35b610b9a600480360360a0811015610aa357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190640100000000811115610b1457600080fd5b820183602082011115610b2657600080fd5b80359060200191846001830284011164010000000083111715610b4857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611756565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612993602b913960400191505060405180910390fd5b6001600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d7b5780601f10610d5057610100808354040283529160200191610d7b565b820191906000526020600020905b815481529060010190602001808311610d5e57829003601f168201915b50505050509050919050565b610e5987878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611acb565b50505050505050565b8151835114610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612aba6028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610f42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806129e76025913960400191505060405180910390fd5b610f4a611ded565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610f905750610f8f85610f8a611ded565b6116c2565b5b610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612a0c6032913960400191505060405180910390fd5b6000610fef611ded565b9050610fff818787878787611df5565b60005b84518110156111d057600085828151811061101957fe5b60200260200101519050600085838151811061103157fe5b602002602001015190506110b8816040518060600160405280602a8152602001612a3e602a91396001600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dfd9092919063ffffffff16565b6001600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061116f816001600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb790919063ffffffff16565b6001600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611002565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611280578082015181840152602081019050611265565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156112c25780820151818401526020810190506112a7565b5050505090500194505050505060405180910390a46112e5818787878787611f3f565b505050505050565b60608151835114611349576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612a916029913960400191505060405180910390fd5b6000835167ffffffffffffffff8111801561136357600080fd5b506040519080825280602002602001820160405280156113925781602001602082028036833780820191505090505b50905060005b84518110156113f4576113d18582815181106113b057fe5b60200260200101518583815181106113c457fe5b6020026020010151610b9c565b8282815181106113dd57fe5b602002602001018181525050806001019050611398565b508091505092915050565b60606000600583901b67ffffffffffffffff8111801561141e57600080fd5b506040519080825280601f01601f1916602001820160405280156114515781602001600182028036833780820191505090505b50905060005b8381101561147a5780850154806020830260208501015250806001019050611457565b508091505092915050565b6114d585858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506122ce565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166114fb611ded565b73ffffffffffffffffffffffffffffffffffffffff161415611568576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612a686029913960400191505060405180910390fd5b8060026000611575611ded565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611622611ded565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600080825160208401855af46040518181523d60208201523d6000604083013e60403d0181fd5b807f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d55550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806129e76025913960400191505060405180910390fd5b6117e4611ded565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061182a575061182985611824611ded565b6116c2565b5b61187f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806129be6029913960400191505060405180910390fd5b6000611889611ded565b90506118a981878761189a886124d1565b6118a3886124d1565b87611df5565b611926836040518060600160405280602a8152602001612a3e602a91396001600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dfd9092919063ffffffff16565b6001600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119dd836001600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb790919063ffffffff16565b6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a4611ac3818787878787612542565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ae26021913960400191505060405180910390fd5b8151835114611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612aba6028913960400191505060405180910390fd5b6000611bb5611ded565b9050611bc681600087878787611df5565b60005b8451811015611ccf57611c5b60016000878481518110611be557fe5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054858381518110611c4557fe5b6020026020010151611eb790919063ffffffff16565b60016000878481518110611c6b57fe5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050611bc9565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611d80578082015181840152602081019050611d65565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611dc2578082015181840152602081019050611da7565b5050505090500194505050505060405180910390a4611de681600087878787611f3f565b5050505050565b600033905090565b505050505050565b6000838311158290611eaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6f578082015181840152602081019050611e54565b50505050905090810190601f168015611e9c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015611f35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b611f5e8473ffffffffffffffffffffffffffffffffffffffff1661284f565b156122c6578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015612016578082015181840152602081019050611ffb565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561205857808201518184015260208101905061203d565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561209757808201518184015260208101905061207c565b50505050905090810190601f1680156120c45780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b1580156120e957600080fd5b505af192505050801561211d57506040513d602081101561210957600080fd5b810190808051906020019092919050505060015b61222757612129612880565b8061213457506121d6565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561219b578082015181840152602081019050612180565b50505050905090810190601f1680156121c85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806129376034913960400191505060405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061296b6028913960400191505060405180910390fd5b505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612354576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ae26021913960400191505060405180910390fd5b600061235e611ded565b905061237f81600087612370886124d1565b612379886124d1565b87611df5565b6123e2836001600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb790919063ffffffff16565b6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a46124ca81600087878787612542565b5050505050565b60606000600167ffffffffffffffff811180156124ed57600080fd5b5060405190808252806020026020018201604052801561251c5781602001602082028036833780820191505090505b509050828160008151811061252d57fe5b60200260200101818152505080915050919050565b6125618473ffffffffffffffffffffffffffffffffffffffff1661284f565b15612847578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561261a5780820151818401526020810190506125ff565b50505050905090810190601f1680156126475780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561266a57600080fd5b505af192505050801561269e57506040513d602081101561268a57600080fd5b810190808051906020019092919050505060015b6127a8576126aa612880565b806126b55750612757565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561271c578082015181840152602081019050612701565b50505050905090810190601f1680156127495780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806129376034913960400191505060405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061296b6028913960400191505060405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d101561289057612933565b60046000803e6128a1600051612873565b6308c379a081146128b25750612933565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156128de57505050612933565b808201805167ffffffffffffffff8111156128fd575050505050612933565b8060208301013d850181111561291857505050505050612933565b61292182612862565b60208401016040528296505050505050505b9056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368455243313135353a206d696e7420746f20746865207a65726f2061646472657373a2646970667358221220f19f248c56577f5fa53609a0dc21bf09993bb055d129245307f9dc2285429f2864736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
