0x60c060405234801561001057600080fd5b50604051610bcb380380610bcb8339818101604052604081101561003357600080fd5b81516020830180516040519294929383019291908464010000000082111561005a57600080fd5b90830190602082018581111561006f57600080fd5b825186602082028301116401000000008211171561008c57600080fd5b82525081516020918201928201910280838360005b838110156100b95781810151838201526020016100a1565b505050509190910160405250503060805250506001600160601b0319606083901b1660a052805160005b818110156101155761010d8382815181106100fa57fe5b602002602001015161011e60201b60201c565b6001016100e3565b5050505061024c565b6101368160006101c660201b61040d1790919060201c565b610187576040805162461bcd60e51b815260206004820152601b60248201527f4164647265737320616c726561647920616c6c6f776c69737465640000000000604482015290519081900360640190fd5b604080516001600160a01b038316815290517fc1fafd2633d2190fbc0bd1e0e993dc44495d77bd7a5bc0a4951b5edb0d58254e9181900360200190a150565b60006101d2838361022b565b61022157508154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03861690811790915585549082528286019093526040902091909155610225565b5060005b92915050565b6001600160a01b031660009081526001919091016020526040902054151590565b60805160a05160601c6109596102726000398061027052508061020352506109596000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063aaabadc51161005b578063aaabadc514610161578063c23697a814610169578063c7abf7e2146101b0578063f191aad0146101b857610088565b80632ee7ca641461008d578063851c1bb3146100d35780638d928af814610124578063a5ee4e711461012c575b600080fd5b6100aa600480360360208110156100a357600080fd5b50356101eb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610112600480360360208110156100e957600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166101fd565b60408051918252519081900360200190f35b6100aa61026e565b61015f6004803603602081101561014257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610292565b005b6100aa61035c565b61019c6004803603602081101561017f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166103dc565b604080519115158252519081900360200190f35b6101126103e8565b61015f600480360360208110156101ce57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166103f9565b60006101f78183610496565b92915050565b604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527fffffffff000000000000000000000000000000000000000000000000000000008416828401528251602481840301815260449092019092528051910120919050565b7f000000000000000000000000000000000000000000000000000000000000000090565b61029a6104b9565b6102a56000826104ff565b61031057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f41646472657373206973206e6f7420616c6c6f776c6973746564000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f6b7e0fe40ab6dde83349106ff5b5ce7689d5912a704a21a972034191d182de329181900360200190a150565b600061036661026e565b73ffffffffffffffffffffffffffffffffffffffff1663aaabadc56040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ab57600080fd5b505afa1580156103bf573d6000803e3d6000fd5b505050506040513d60208110156103d557600080fd5b5051905090565b60006101f781836106ad565b60006103f460006106db565b905090565b6104016104b9565b61040a816106df565b50565b600061041983836106ad565b61048d57508154600180820184556000848152602080822090930180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155855490825282860190935260409020919091556101f7565b50600092915050565b81546000906104a890831060646107a1565b6104b283836107b3565b9392505050565b60006104e86000357fffffffff00000000000000000000000000000000000000000000000000000000166101fd565b905061040a6104f782336107ed565b6101916107a1565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205480156106a35783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808301910180821461060857600086600001828154811061056d57fe5b600091825260209091200154875473ffffffffffffffffffffffffffffffffffffffff909116915081908890859081106105a357fe5b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff94851617905592909116815260018881019092526040902090830190555b855486908061061357fe5b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590920190925573ffffffffffffffffffffffffffffffffffffffff871682526001888101909152604082209190915593506101f792505050565b60009150506101f7565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001919091016020526040902054151590565b5490565b6106ea60008261040d565b61075557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4164647265737320616c726561647920616c6c6f776c69737465640000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517fc1fafd2633d2190fbc0bd1e0e993dc44495d77bd7a5bc0a4951b5edb0d58254e9181900360200190a150565b816107af576107af816108b6565b5050565b60008260000182815481106107c457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169392505050565b60006107f761035c565b73ffffffffffffffffffffffffffffffffffffffff16639be2a8848484306040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001935050505060206040518083038186803b15801561088357600080fd5b505afa158015610897573d6000803e3d6000fd5b505050506040513d60208110156108ad57600080fd5b50519392505050565b7f08c379a0000000000000000000000000000000000000000000000000000000006000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fdfea2646970667358221220e3e34d3520c216839fccf9b621b0c368bce598377298a3775c7a16aacf9bb97064736f6c63430007010033000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000