{
  "contractName": "ExternalLocking4Reputation",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_locker",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_lockingId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_period",
          "type": "uint256"
        }
      ],
      "name": "Lock",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Redeem",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "Register",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_lockingId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Release",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "avatar",
      "outputs": [
        {
          "internalType": "contract Avatar",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_agreementHash",
          "type": "bytes32"
        }
      ],
      "name": "claim",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "externalLockers",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "externalLockingContract",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAgreementHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getBalanceFuncSignature",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_reputationReward",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_claimingStartTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_claimingEndTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_redeemEnableTime",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_externalLockingContract",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "_getBalanceFuncSignature",
          "type": "string"
        },
        {
          "internalType": "bytes32",
          "name": "_agreementHash",
          "type": "bytes32"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "lockers",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "releaseTime",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lockingEndTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lockingStartTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lockingsCounter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxLockingPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "redeem",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "reputation",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "redeemEnableTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_agreementHash",
          "type": "bytes32"
        }
      ],
      "name": "register",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "registrar",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "reputationReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "reputationRewardLeft",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "scores",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalLocked",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalLockedLeft",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalScore",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "voteParamsHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "votingMachine",
      "outputs": [
        {
          "internalType": "contract IntVoteInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611774806100206000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063afe0e33c116100c3578063dd9d2deb1161007c578063dd9d2deb146102b8578063e1fa8e84146102f2578063e397cb9e14610311578063ed1ff6d814610337578063f0167cfa1461033f578063f27a5505146103bc57610158565b8063afe0e33c14610264578063bf0df4451461026c578063c006719f14610274578063c3201add1461027c578063c348a24b14610284578063c8622c241461028c57610158565b8063696da92111610115578063696da921146101bb57806376dd110f146101c35780637f33ccac146101e957806383805742146101f157806395a2251f14610236578063a8c330171461025c57610158565b80633d1678f41461015d5780633edf7ca1146101775780634ea2c7ec1461019b57806355bfec88146101a357806356891412146101ab5780635aef7de6146101b3575b600080fd5b61016561045e565b60408051918252519081900360200190f35b61017f610464565b604080516001600160a01b039092168252519081900360200190f35b610165610473565b610165610479565b61016561047f565b61017f610485565b610165610494565b610165600480360360208110156101d957600080fd5b50356001600160a01b031661049b565b61017f6104ad565b61021d6004803603604081101561020757600080fd5b506001600160a01b0381351690602001356104bc565b6040805192835260208301919091528051918290030190f35b6101656004803603602081101561024c57600080fd5b50356001600160a01b03166104e0565b61016561077d565b610165610783565b610165610789565b61016561078f565b610165610795565b61016561079b565b610165600480360360408110156102a257600080fd5b506001600160a01b0381351690602001356107a1565b6102de600480360360208110156102ce57600080fd5b50356001600160a01b0316610ab7565b604080519115158252519081900360200190f35b61030f6004803603602081101561030857600080fd5b5035610acc565b005b6102de6004803603602081101561032757600080fd5b50356001600160a01b0316610b51565b610165610b66565b610347610b6c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610381578181015183820152602001610369565b50505050905090810190601f1680156103ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61030f60048036036101008110156103d357600080fd5b6001600160a01b03823581169260208101359260408201359260608301359260808101359260a08201359092169181019060e0810160c082013564010000000081111561041f57600080fd5b82018360208201111561043157600080fd5b8035906020019184600183028401116401000000008311171561045357600080fd5b919350915035610bfa565b60425481565b6035546001600160a01b031681565b60365481565b60415481565b60395481565b6034546001600160a01b031681565b6000545b90565b60386020526000908152604090205481565b6043546001600160a01b031681565b60376020908152600092835260408084209091529082529020805460019091015482565b60006042544211610531576040805162461bcd60e51b81526020600482015260166024820152756e6f77203e2072656465656d456e61626c6554696d6560501b604482015290519081900360640190fd5b6001600160a01b038216600090815260386020526040902054610591576040805162461bcd60e51b8152602060048201526013602482015272073636f72652073686f756c64206265203e203606c1b604482015290519081900360640190fd5b6001600160a01b0382166000908152603860205260408120805490829055603d549091906105c690839063ffffffff610c7b16565b90506105dd603b5482610cdb90919063ffffffff16565b603e549093506105f3908463ffffffff610d1d16565b603e5560345460408051638da5cb5b60e01b815290516001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b15801561063b57600080fd5b505afa15801561064f573d6000803e3d6000fd5b505050506040513d602081101561066557600080fd5b50516040805163dea9e24d60e01b8152600481018690526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b505050506040513d60208110156106e457600080fd5b5051610737576040805162461bcd60e51b815260206004820152601e60248201527f6d696e742072657075746174696f6e2073686f756c6420737563636565640000604482015290519081900360640190fd5b6040805184815290516001600160a01b038616917f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a6919081900360200190a25050919050565b603f5481565b603e5481565b60405481565b603b5481565b603c5481565b603a5481565b6034546000906001600160a01b0316610801576040805162461bcd60e51b815260206004820152601760248201527f73686f756c6420696e697469616c697a65206669727374000000000000000000604482015290519081900360640190fd5b60006001600160a01b038416610818575033610888565b6001600160a01b03841660009081526046602052604090205460ff16610885576040805162461bcd60e51b815260206004820152601e60248201527f62656e65666963696172792073686f756c642062652072656769737465720000604482015290519081900360640190fd5b50825b6001600160a01b03811660009081526045602052604090205460ff16156108e05760405162461bcd60e51b81526004018080602001828103825260368152602001806116ad6036913960400191505060405180910390fd5b6001600160a01b03808216600081815260456020526040808220805460ff1916600190811790915560435482516024808201969096528351808203909601865260449081019384905280549496606096921694919390929091829184916002600019928216156101000292909201160480156109935780601f10610971576101008083540402835291820191610993565b820191906000526020600020905b81548152906001019060200180831161097f575b505060408051918290039091206020850180516001600160e01b03166001600160e01b0319909216919091178152905184519093508392508083835b602083106109ee5780518252601f1990920191602091820191016109cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610a50576040519150601f19603f3d011682016040523d82523d6000602084013e610a55565b606091505b509150915081610a965760405162461bcd60e51b81526004018080602001828103825260288152602001806115506028913960400191505060405180910390fd5b6020810151610aaa8160018681808b610d5f565b9450505050505b92915050565b60456020526000908152604090205460ff1681565b806000548114610b0d5760405162461bcd60e51b81526004018080602001828103825260288152602001806116596028913960400191505060405180910390fd5b33600081815260466020526040808220805460ff19166001179055517feeda149c76076b34d4b9d8896c2f7efc0d33d1c7b53ea3c5db490d64613f603a9190a25050565b60466020526000908152604090205460ff1681565b603d5481565b6044805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bf25780601f10610bc757610100808354040283529160200191610bf2565b820191906000526020600020905b815481529060010190602001808311610bd557829003601f168201915b505050505081565b868611610c385760405162461bcd60e51b815260040180806020018281038252603a815260200180611705603a913960400191505060405180910390fd5b604380546001600160a01b0319166001600160a01b038616179055610c5f604484846114b7565b50610c708989898989600187611133565b505050505050505050565b600082610c8a57506000610ab1565b82820282848281610c9757fe5b0414610cd45760405162461bcd60e51b81526004018080602001828103825260218152602001806115d06021913960400191505060405180910390fd5b9392505050565b6000610cd483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111e9565b6000610cd483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061128b565b6000816000548114610da25760405162461bcd60e51b81526004018080602001828103825260288152602001806116596028913960400191505060405180910390fd5b60008811610df7576040805162461bcd60e51b815260206004820152601c60248201527f6c6f636b696e6720616d6f756e742073686f756c64206265203e203000000000604482015290519081900360640190fd5b604054871115610e385760405162461bcd60e51b815260040180806020018281038252602c815260200180611681602c913960400191505060405180910390fd5b60008711610e8d576040805162461bcd60e51b815260206004820152601c60248201527f6c6f636b696e6720706572696f642073686f756c64206265203e203000000000604482015290519081900360640190fd5b603f54421115610ece5760405162461bcd60e51b81526004018080602001828103825260308152602001806115a06030913960400191505060405180910390fd5b604154421015610f0f5760405162461bcd60e51b81526004018080602001828103825260288152602001806115786028913960400191505060405180910390fd5b603c54604080513060601b602080830191909152603480830185905283518084039091018152605490920190925280519101209250610f5590600163ffffffff6112e516565b603c556001600160a01b038616600090815260376020908152604080832085845290915290208881554288016001820155603954610f99908a63ffffffff6112e516565b603955603a54610faf908a63ffffffff6112e516565b603a556000610fe486610fd889610fcc8d8f63ffffffff610c7b16565b9063ffffffff610c7b16565b9063ffffffff610cdb16565b90506000811161102f576040805162461bcd60e51b8152602060048201526011602482015270073636f7265206d757374206d65203e203607c1b604482015290519081900360640190fd5b6001600160a01b038816600090815260386020526040902054611058908263ffffffff6112e516565b6001600160a01b0389166000908152603860205260409020819055603d54908181028161108157fe5b04146110c8576040805162461bcd60e51b81526020600482015260116024820152700e6c6dee4ca40d2e640e8dede40d0d2ced607b1b604482015290519081900360640190fd5b603b546110db908263ffffffff6112e516565b603b55604080518b8152602081018b9052815186926001600160a01b038c16927fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b426929081900390910190a35050509695505050505050565b61113c8761133f565b84841161117a5760405162461bcd60e51b815260040180806020018281038252603a81526020018061161f603a913960400191505060405180910390fd5b838310156111b95760405162461bcd60e51b81526004018080602001828103825260228152602001806116e36022913960400191505060405180910390fd5b603d869055603e869055603f8490556040829055604185905560428390556111e081611457565b50505050505050565b600081836112755760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561123a578181015183820152602001611222565b50505050905090810190601f1680156112675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161128157fe5b0495945050505050565b600081848411156112dd5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561123a578181015183820152602001611222565b505050900390565b600082820183811015610cd4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600154610100900460ff168061135857506113586114b1565b80611366575060015460ff16155b6113a15760405162461bcd60e51b815260040180806020018281038252602e8152602001806115f1602e913960400191505060405180910390fd5b600154610100900460ff161580156113cb576001805460ff1961ff00199091166101001716811790555b6001600160a01b038216611426576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0384161790558015611453576001805461ff00191690555b5050565b600054156114ac576040805162461bcd60e51b815260206004820152601b60248201527f43616e206e6f74207365742061677265656d656e742074776963650000000000604482015290519081900360640190fd5b600055565b303b1590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114f85782800160ff19823516178555611525565b82800160010185558215611525579182015b8281111561152557823582559160200191906001019061150a565b50611531929150611535565b5090565b61049891905b80821115611531576000815560010161153b56fe63616c6c20746f2065787465726e616c20636f6e74726163742073686f756c6420737563636565646c6f636b2073686f756c64207374617274206166746572206c6f636b696e67537461727454696d656c6f636b2073686f756c642062652077697468696e2074686520616c6c6f776564206c6f636b696e6720706572696f64536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646c6f636b696e6720656e642074696d652073686f756c642062652067726561746572207468616e206c6f636b696e672073746172742074696d6553656e646572206d7573742073656e64207468652072696768742061677265656d656e74486173686c6f636b696e6720706572696f642073686f756c64206265203c3d206d61784c6f636b696e67506572696f64636c61696d696e6720747769636520666f72207468652073616d652062656e6566696369617279206973206e6f7420616c6c6f77656472656465656d456e61626c6554696d65203e3d206c6f636b696e67456e6454696d655f636c61696d696e67456e6454696d652073686f756c642062652067726561746572207468616e205f636c61696d696e67537461727454696d65a264697066735822122016de0dc415d4d05a8f0651094f8578e12f5e3a29f0f305f6e7589cf5ec3933d764736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063afe0e33c116100c3578063dd9d2deb1161007c578063dd9d2deb146102b8578063e1fa8e84146102f2578063e397cb9e14610311578063ed1ff6d814610337578063f0167cfa1461033f578063f27a5505146103bc57610158565b8063afe0e33c14610264578063bf0df4451461026c578063c006719f14610274578063c3201add1461027c578063c348a24b14610284578063c8622c241461028c57610158565b8063696da92111610115578063696da921146101bb57806376dd110f146101c35780637f33ccac146101e957806383805742146101f157806395a2251f14610236578063a8c330171461025c57610158565b80633d1678f41461015d5780633edf7ca1146101775780634ea2c7ec1461019b57806355bfec88146101a357806356891412146101ab5780635aef7de6146101b3575b600080fd5b61016561045e565b60408051918252519081900360200190f35b61017f610464565b604080516001600160a01b039092168252519081900360200190f35b610165610473565b610165610479565b61016561047f565b61017f610485565b610165610494565b610165600480360360208110156101d957600080fd5b50356001600160a01b031661049b565b61017f6104ad565b61021d6004803603604081101561020757600080fd5b506001600160a01b0381351690602001356104bc565b6040805192835260208301919091528051918290030190f35b6101656004803603602081101561024c57600080fd5b50356001600160a01b03166104e0565b61016561077d565b610165610783565b610165610789565b61016561078f565b610165610795565b61016561079b565b610165600480360360408110156102a257600080fd5b506001600160a01b0381351690602001356107a1565b6102de600480360360208110156102ce57600080fd5b50356001600160a01b0316610ab7565b604080519115158252519081900360200190f35b61030f6004803603602081101561030857600080fd5b5035610acc565b005b6102de6004803603602081101561032757600080fd5b50356001600160a01b0316610b51565b610165610b66565b610347610b6c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610381578181015183820152602001610369565b50505050905090810190601f1680156103ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61030f60048036036101008110156103d357600080fd5b6001600160a01b03823581169260208101359260408201359260608301359260808101359260a08201359092169181019060e0810160c082013564010000000081111561041f57600080fd5b82018360208201111561043157600080fd5b8035906020019184600183028401116401000000008311171561045357600080fd5b919350915035610bfa565b60425481565b6035546001600160a01b031681565b60365481565b60415481565b60395481565b6034546001600160a01b031681565b6000545b90565b60386020526000908152604090205481565b6043546001600160a01b031681565b60376020908152600092835260408084209091529082529020805460019091015482565b60006042544211610531576040805162461bcd60e51b81526020600482015260166024820152756e6f77203e2072656465656d456e61626c6554696d6560501b604482015290519081900360640190fd5b6001600160a01b038216600090815260386020526040902054610591576040805162461bcd60e51b8152602060048201526013602482015272073636f72652073686f756c64206265203e203606c1b604482015290519081900360640190fd5b6001600160a01b0382166000908152603860205260408120805490829055603d549091906105c690839063ffffffff610c7b16565b90506105dd603b5482610cdb90919063ffffffff16565b603e549093506105f3908463ffffffff610d1d16565b603e5560345460408051638da5cb5b60e01b815290516001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b15801561063b57600080fd5b505afa15801561064f573d6000803e3d6000fd5b505050506040513d602081101561066557600080fd5b50516040805163dea9e24d60e01b8152600481018690526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b505050506040513d60208110156106e457600080fd5b5051610737576040805162461bcd60e51b815260206004820152601e60248201527f6d696e742072657075746174696f6e2073686f756c6420737563636565640000604482015290519081900360640190fd5b6040805184815290516001600160a01b038616917f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a6919081900360200190a25050919050565b603f5481565b603e5481565b60405481565b603b5481565b603c5481565b603a5481565b6034546000906001600160a01b0316610801576040805162461bcd60e51b815260206004820152601760248201527f73686f756c6420696e697469616c697a65206669727374000000000000000000604482015290519081900360640190fd5b60006001600160a01b038416610818575033610888565b6001600160a01b03841660009081526046602052604090205460ff16610885576040805162461bcd60e51b815260206004820152601e60248201527f62656e65666963696172792073686f756c642062652072656769737465720000604482015290519081900360640190fd5b50825b6001600160a01b03811660009081526045602052604090205460ff16156108e05760405162461bcd60e51b81526004018080602001828103825260368152602001806116ad6036913960400191505060405180910390fd5b6001600160a01b03808216600081815260456020526040808220805460ff1916600190811790915560435482516024808201969096528351808203909601865260449081019384905280549496606096921694919390929091829184916002600019928216156101000292909201160480156109935780601f10610971576101008083540402835291820191610993565b820191906000526020600020905b81548152906001019060200180831161097f575b505060408051918290039091206020850180516001600160e01b03166001600160e01b0319909216919091178152905184519093508392508083835b602083106109ee5780518252601f1990920191602091820191016109cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610a50576040519150601f19603f3d011682016040523d82523d6000602084013e610a55565b606091505b509150915081610a965760405162461bcd60e51b81526004018080602001828103825260288152602001806115506028913960400191505060405180910390fd5b6020810151610aaa8160018681808b610d5f565b9450505050505b92915050565b60456020526000908152604090205460ff1681565b806000548114610b0d5760405162461bcd60e51b81526004018080602001828103825260288152602001806116596028913960400191505060405180910390fd5b33600081815260466020526040808220805460ff19166001179055517feeda149c76076b34d4b9d8896c2f7efc0d33d1c7b53ea3c5db490d64613f603a9190a25050565b60466020526000908152604090205460ff1681565b603d5481565b6044805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bf25780601f10610bc757610100808354040283529160200191610bf2565b820191906000526020600020905b815481529060010190602001808311610bd557829003601f168201915b505050505081565b868611610c385760405162461bcd60e51b815260040180806020018281038252603a815260200180611705603a913960400191505060405180910390fd5b604380546001600160a01b0319166001600160a01b038616179055610c5f604484846114b7565b50610c708989898989600187611133565b505050505050505050565b600082610c8a57506000610ab1565b82820282848281610c9757fe5b0414610cd45760405162461bcd60e51b81526004018080602001828103825260218152602001806115d06021913960400191505060405180910390fd5b9392505050565b6000610cd483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111e9565b6000610cd483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061128b565b6000816000548114610da25760405162461bcd60e51b81526004018080602001828103825260288152602001806116596028913960400191505060405180910390fd5b60008811610df7576040805162461bcd60e51b815260206004820152601c60248201527f6c6f636b696e6720616d6f756e742073686f756c64206265203e203000000000604482015290519081900360640190fd5b604054871115610e385760405162461bcd60e51b815260040180806020018281038252602c815260200180611681602c913960400191505060405180910390fd5b60008711610e8d576040805162461bcd60e51b815260206004820152601c60248201527f6c6f636b696e6720706572696f642073686f756c64206265203e203000000000604482015290519081900360640190fd5b603f54421115610ece5760405162461bcd60e51b81526004018080602001828103825260308152602001806115a06030913960400191505060405180910390fd5b604154421015610f0f5760405162461bcd60e51b81526004018080602001828103825260288152602001806115786028913960400191505060405180910390fd5b603c54604080513060601b602080830191909152603480830185905283518084039091018152605490920190925280519101209250610f5590600163ffffffff6112e516565b603c556001600160a01b038616600090815260376020908152604080832085845290915290208881554288016001820155603954610f99908a63ffffffff6112e516565b603955603a54610faf908a63ffffffff6112e516565b603a556000610fe486610fd889610fcc8d8f63ffffffff610c7b16565b9063ffffffff610c7b16565b9063ffffffff610cdb16565b90506000811161102f576040805162461bcd60e51b8152602060048201526011602482015270073636f7265206d757374206d65203e203607c1b604482015290519081900360640190fd5b6001600160a01b038816600090815260386020526040902054611058908263ffffffff6112e516565b6001600160a01b0389166000908152603860205260409020819055603d54908181028161108157fe5b04146110c8576040805162461bcd60e51b81526020600482015260116024820152700e6c6dee4ca40d2e640e8dede40d0d2ced607b1b604482015290519081900360640190fd5b603b546110db908263ffffffff6112e516565b603b55604080518b8152602081018b9052815186926001600160a01b038c16927fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b426929081900390910190a35050509695505050505050565b61113c8761133f565b84841161117a5760405162461bcd60e51b815260040180806020018281038252603a81526020018061161f603a913960400191505060405180910390fd5b838310156111b95760405162461bcd60e51b81526004018080602001828103825260228152602001806116e36022913960400191505060405180910390fd5b603d869055603e869055603f8490556040829055604185905560428390556111e081611457565b50505050505050565b600081836112755760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561123a578181015183820152602001611222565b50505050905090810190601f1680156112675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161128157fe5b0495945050505050565b600081848411156112dd5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561123a578181015183820152602001611222565b505050900390565b600082820183811015610cd4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600154610100900460ff168061135857506113586114b1565b80611366575060015460ff16155b6113a15760405162461bcd60e51b815260040180806020018281038252602e8152602001806115f1602e913960400191505060405180910390fd5b600154610100900460ff161580156113cb576001805460ff1961ff00199091166101001716811790555b6001600160a01b038216611426576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0384161790558015611453576001805461ff00191690555b5050565b600054156114ac576040805162461bcd60e51b815260206004820152601b60248201527f43616e206e6f74207365742061677265656d656e742074776963650000000000604482015290519081900360640190fd5b600055565b303b1590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114f85782800160ff19823516178555611525565b82800160010185558215611525579182015b8281111561152557823582559160200191906001019061150a565b50611531929150611535565b5090565b61049891905b80821115611531576000815560010161153b56fe63616c6c20746f2065787465726e616c20636f6e74726163742073686f756c6420737563636565646c6f636b2073686f756c64207374617274206166746572206c6f636b696e67537461727454696d656c6f636b2073686f756c642062652077697468696e2074686520616c6c6f776564206c6f636b696e6720706572696f64536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646c6f636b696e6720656e642074696d652073686f756c642062652067726561746572207468616e206c6f636b696e672073746172742074696d6553656e646572206d7573742073656e64207468652072696768742061677265656d656e74486173686c6f636b696e6720706572696f642073686f756c64206265203c3d206d61784c6f636b696e67506572696f64636c61696d696e6720747769636520666f72207468652073616d652062656e6566696369617279206973206e6f7420616c6c6f77656472656465656d456e61626c6554696d65203e3d206c6f636b696e67456e6454696d655f636c61696d696e67456e6454696d652073686f756c642062652067726561746572207468616e205f636c61696d696e67537461727454696d65a264697066735822122016de0dc415d4d05a8f0651094f8578e12f5e3a29f0f305f6e7589cf5ec3933d764736f6c634300060a0033"
}