0x608060405234801561001057600080fd5b50610c6f806100206000396000f3fe60806040526004361061003f5760003560e01c806329723511146100445780635234641214610059578063d54cefc11461006c578063f9c028ec1461007f575b600080fd5b610057610052366004610815565b610092565b005b610057610067366004610955565b610153565b61005761007a3660046109be565b61035a565b61005761008d366004610a3a565b610469565b60005460ff16156100be5760405162461bcd60e51b81526004016100b590610aad565b60405180910390fd5b6000805460ff191660011781556040516001600160a01b038516913480156108fc02929091818181858888f19350505050158015610100573d6000803e3d6000fd5b50826001600160a01b03167f69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de23460405161013c91815260200190565b60405180910390a250506000805460ff1916905550565b60005460ff16156101765760405162461bcd60e51b81526004016100b590610aad565b6000805460ff19166001179055805182146101a35760405162461bcd60e51b81526004016100b590610ad5565b346000805b848110156102fa578381815181106101c2576101c2610b22565b60200260200101519150818310156102135760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016100b5565b61021d8284610b4e565b925085858281811061023157610231610b22565b90506020020160208101906102469190610b67565b6001600160a01b03166108fc839081150290604051600060405180830381858888f1935050505015801561027e573d6000803e3d6000fd5b5085858281811061029157610291610b22565b90506020020160208101906102a69190610b67565b6001600160a01b03167f69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de2836040516102e091815260200190565b60405180910390a2806102f281610b8b565b9150506101a8565b5081156103495760405162461bcd60e51b815260206004820152601a60248201527f546865726520617265206d616e7920657874726120636f73747300000000000060448201526064016100b5565b50506000805460ff19169055505050565b60005460ff161561037d5760405162461bcd60e51b81526004016100b590610aad565b6000805460ff1916600117905534156103cd5760405162461bcd60e51b8152602060048201526012602482015271115d1a195c881b9bdd081858d8d95c1d195960721b60448201526064016100b5565b805182146103ed5760405162461bcd60e51b81526004016100b590610ad5565b60005b82811015610349576104573385858481811061040e5761040e610b22565b90506020020160208101906104239190610b67565b84848151811061043557610435610b22565b6020026020010151886001600160a01b03166104ed909392919063ffffffff16565b8061046181610b8b565b9150506103f0565b60005460ff161561048c5760405162461bcd60e51b81526004016100b590610aad565b6000805460ff1916600117905534156104dc5760405162461bcd60e51b8152602060048201526012602482015271115d1a195c881b9bdd081858d8d95c1d195960721b60448201526064016100b5565b6103496001600160a01b0386163386865b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261054790859061054d565b50505050565b60006105a2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166106249092919063ffffffff16565b80519091501561061f57808060200190518101906105c09190610ba4565b61061f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016100b5565b505050565b6060610633848460008561063b565b949350505050565b60608247101561069c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016100b5565b600080866001600160a01b031685876040516106b89190610bea565b60006040518083038185875af1925050503d80600081146106f5576040519150601f19603f3d011682016040523d82523d6000602084013e6106fa565b606091505b509150915061070b87838387610716565b979650505050505050565b6060831561078557825160000361077e576001600160a01b0385163b61077e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100b5565b5081610633565b610633838381511561079a5781518083602001fd5b8060405162461bcd60e51b81526004016100b59190610c06565b6001600160a01b03811681146107c957600080fd5b50565b60008083601f8401126107de57600080fd5b50813567ffffffffffffffff8111156107f657600080fd5b60208301915083602082850101111561080e57600080fd5b9250929050565b60008060006040848603121561082a57600080fd5b8335610835816107b4565b9250602084013567ffffffffffffffff81111561085157600080fd5b61085d868287016107cc565b9497909650939450505050565b60008083601f84011261087c57600080fd5b50813567ffffffffffffffff81111561089457600080fd5b6020830191508360208260051b850101111561080e57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f8301126108d657600080fd5b8135602067ffffffffffffffff808311156108f3576108f36108af565b8260051b604051601f19603f83011681018181108482111715610918576109186108af565b60405293845285810183019383810192508785111561093657600080fd5b83870191505b8482101561070b5781358352918301919083019061093c565b60008060006040848603121561096a57600080fd5b833567ffffffffffffffff8082111561098257600080fd5b61098e8783880161086a565b909550935060208601359150808211156109a757600080fd5b506109b4868287016108c5565b9150509250925092565b600080600080606085870312156109d457600080fd5b84356109df816107b4565b9350602085013567ffffffffffffffff808211156109fc57600080fd5b610a088883890161086a565b90955093506040870135915080821115610a2157600080fd5b50610a2e878288016108c5565b91505092959194509250565b600080600080600060808688031215610a5257600080fd5b8535610a5d816107b4565b94506020860135610a6d816107b4565b935060408601359250606086013567ffffffffffffffff811115610a9057600080fd5b610a9c888289016107cc565b969995985093965092949392505050565b6020808252600e908201526d1499595b9d1c985b9d0818d85b1b60921b604082015260600190565b6020808252602d908201527f44657374696e6174696f6e20616e6420616d6f756e7420617272617973206c6560408201526c0dccee8d040dad2e6dac2e8c6d609b1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610b6157610b61610b38565b92915050565b600060208284031215610b7957600080fd5b8135610b84816107b4565b9392505050565b600060018201610b9d57610b9d610b38565b5060010190565b600060208284031215610bb657600080fd5b81518015158114610b8457600080fd5b60005b83811015610be1578181015183820152602001610bc9565b50506000910152565b60008251610bfc818460208701610bc6565b9190910192915050565b6020815260008251806020840152610c25816040850160208701610bc6565b601f01601f1916919091016040019291505056fea264697066735822122064d328724d6d8f2270307b4d727aaab07038dca99b27d989041f396aa09641b164736f6c63430008130033