0x60e06040523480156200001157600080fd5b506040516200123f3803806200123f833981016040819052620000349162000173565b8282826001600160a01b038316620000a55760405162461bcd60e51b815260206004820152602a60248201527f56657374696e6757616c6c65743a2062656e6566696369617279206973207a65604482015269726f206164647265737360b01b606482015260840160405180910390fd5b6001600160a01b039092166080526001600160401b0390811660a0521660c052620000d7620000d13390565b620000ec565b620000e284620000ec565b50505050620001d0565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200015657600080fd5b919050565b80516001600160401b03811681146200015657600080fd5b600080600080608085870312156200018a57600080fd5b62000195856200013e565b9350620001a5602086016200013e565b9250620001b5604086016200015b565b9150620001c5606086016200015b565b905092959194509250565b60805160a05160c0516110236200021c6000396000818161013a01528181610848015261089d015260006106b3015260008181610199015281816103f2015261068001526110236000f3fe6080604052600436106100ec5760003560e01c806386d1a69f1161008a5780639852595c116100595780639852595c1461029f578063be9a6555146102d5578063eb491a88146102ea578063f2fde38b1461030a57600080fd5b806386d1a69f146102265780638732e3a01461023b5780638da5cb5b1461026c578063961325211461028a57600080fd5b806338af3eed116100c657806338af3eed1461018a57806340c79fa7146101d1578063715018a6146101f1578063810ec23b1461020657600080fd5b80630a17b06b146100f85780630fb5a6b41461012b578063191655871461016857600080fd5b366100f357005b600080fd5b34801561010457600080fd5b50610118610113366004610d89565b61032a565b6040519081526020015b60405180910390f35b34801561013757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16610118565b34801561017457600080fd5b50610188610183366004610dbb565b61034e565b005b34801561019657600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610122565b3480156101dd57600080fd5b506101886101ec366004610dd6565b61041c565b3480156101fd57600080fd5b5061018861056f565b34801561021257600080fd5b50610118610221366004610e4b565b610583565b34801561023257600080fd5b50610188610619565b34801561024757600080fd5b5060025461025c90600160a01b900460ff1681565b6040519015158152602001610122565b34801561027857600080fd5b506002546001600160a01b03166101b9565b34801561029657600080fd5b50600054610118565b3480156102ab57600080fd5b506101186102ba366004610dbb565b6001600160a01b031660009081526001602052604090205490565b3480156102e157600080fd5b506101186106a8565b3480156102f657600080fd5b50610188610305366004610dbb565b6106d6565b34801561031657600080fd5b50610188610325366004610dbb565b6107a8565b600061034861033860005490565b6103429047610e94565b83610823565b92915050565b6001600160a01b0381166000908152600160205260408120546103718342610583565b61037b9190610eac565b6001600160a01b0383166000908152600160205260408120805492935083929091906103a8908490610e94565b90915550506040518181526001600160a01b038316907fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b906020015b60405180910390a2610418827f00000000000000000000000000000000000000000000000000000000000000005b836108fd565b5050565b610424610954565b600254600160a01b900460ff161561044f57604051631b6ef75760e21b815260040160405180910390fd5b60005b8181101561052e57600083838381811061046e5761046e610ec3565b90506020020160208101906104839190610dbb565b905060006104918242610583565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156104d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f99190610ed9565b6105039190610eac565b905061051b826104126002546001600160a01b031690565b50508061052790610ef2565b9050610452565b506002805460ff60a01b1916600160a01b1790556040517f22ee45b273ba60d97bc6a3eb07766395877c427e0db75dae5e70615d6dd497ac90600090a15050565b610577610954565b61058160006109ae565b565b6001600160a01b038216600090815260016020526040812054610612906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156105e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106089190610ed9565b6103429190610e94565b9392505050565b600080546106264261032a565b6106309190610eac565b9050806000808282546106439190610e94565b90915550506040518181527fda9d4e5f101b8b9b1c5b76d0c5a9f7923571acfc02376aa076b75a8c080c956b9060200160405180910390a16106a57f000000000000000000000000000000000000000000000000000000000000000082610a00565b50565b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690565b600254600160a01b900460ff1661070057604051633083bc6f60e21b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b9190610ed9565b9050816001600160a01b03167fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b826040516103e491815260200190565b6107b0610954565b6001600160a01b03811661081a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6106a5816109ae565b600061082d6106a8565b8267ffffffffffffffff16101561084657506000610348565b7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166108796106a8565b6108839190610e94565b8267ffffffffffffffff16111561089b575081610348565b7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166108ce6106a8565b6108e29067ffffffffffffffff8516610eac565b6108ec9085610f0b565b6108f69190610f2a565b9050610348565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261094f908490610b19565b505050565b6002546001600160a01b031633146105815760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610811565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80471015610a505760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610811565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610a9d576040519150601f19603f3d011682016040523d82523d6000602084013e610aa2565b606091505b505090508061094f5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610811565b6000610b6e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610beb9092919063ffffffff16565b80519091501561094f5780806020019051810190610b8c9190610f4c565b61094f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610811565b6060610bfa8484600085610c02565b949350505050565b606082471015610c635760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610811565b6001600160a01b0385163b610cba5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610811565b600080866001600160a01b03168587604051610cd69190610f9e565b60006040518083038185875af1925050503d8060008114610d13576040519150601f19603f3d011682016040523d82523d6000602084013e610d18565b606091505b5091509150610d28828286610d33565b979650505050505050565b60608315610d42575081610612565b825115610d525782518084602001fd5b8160405162461bcd60e51b81526004016108119190610fba565b803567ffffffffffffffff81168114610d8457600080fd5b919050565b600060208284031215610d9b57600080fd5b61061282610d6c565b80356001600160a01b0381168114610d8457600080fd5b600060208284031215610dcd57600080fd5b61061282610da4565b60008060208385031215610de957600080fd5b823567ffffffffffffffff80821115610e0157600080fd5b818501915085601f830112610e1557600080fd5b813581811115610e2457600080fd5b8660208260051b8501011115610e3957600080fd5b60209290920196919550909350505050565b60008060408385031215610e5e57600080fd5b610e6783610da4565b9150610e7560208401610d6c565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ea757610ea7610e7e565b500190565b600082821015610ebe57610ebe610e7e565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610eeb57600080fd5b5051919050565b600060018201610f0457610f04610e7e565b5060010190565b6000816000190483118215151615610f2557610f25610e7e565b500290565b600082610f4757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610f5e57600080fd5b8151801515811461061257600080fd5b60005b83811015610f89578181015183820152602001610f71565b83811115610f98576000848401525b50505050565b60008251610fb0818460208701610f6e565b9190910192915050565b6020815260008251806020840152610fd9816040850160208701610f6e565b601f01601f1916919091016040019291505056fea2646970667358221220f98311a47b6fe8dd918cab99e645ce83334793458fae7584d2e694b59a6269d564736f6c634300080f0033000000000000000000000000b351ec0feaf4b99fdfd36b484d9ec90d0422493d000000000000000000000000479f6833bc5456b00276473db1bd3ee93ff8e3e200000000000000000000000000000000000000000000000000000000650c6880000000000000000000000000000000000000000000000000000000000784ce00