0x6080604052600f60055560196006553480156200001b57600080fd5b50604080518082018252600d81526c5370616365582042616e616e6160981b60208083019182528351808501909452600684526542414e414e4160d01b908401528151919291633b9aca009162000076916003919062000122565b5081516200008c90600490602085019062000122565b50600780546001600160a01b031916331790556012620000ae90600a620002dd565b620000ba9082620002f5565b6002819055600780546001600160a01b0390811660009081526020818152604080832086905593549351948552929091169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505062000354565b828054620001309062000317565b90600052602060002090601f0160209004810192826200015457600085556200019f565b82601f106200016f57805160ff19168380011785556200019f565b828001600101855582156200019f579182015b828111156200019f57825182559160200191906001019062000182565b50620001ad929150620001b1565b5090565b5b80821115620001ad5760008155600101620001b2565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200021f578160001904821115620002035762000203620001c8565b808516156200021157918102915b93841c9390800290620001e3565b509250929050565b6000826200023857506001620002d7565b816200024757506000620002d7565b81600181146200026057600281146200026b576200028b565b6001915050620002d7565b60ff8411156200027f576200027f620001c8565b50506001821b620002d7565b5060208310610133831016604e8410600b8410161715620002b0575081810a620002d7565b620002bc8383620001de565b8060001904821115620002d357620002d3620001c8565b0290505b92915050565b6000620002ee60ff84168362000227565b9392505050565b6000816000190483118215151615620003125762000312620001c8565b500290565b600181811c908216806200032c57607f821691505b602082108114156200034e57634e487b7160e01b600052602260045260246000fd5b50919050565b6115c180620003646000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806378cb3d1c1161010f578063b8963681116100a2578063dc1052e211610071578063dc1052e214610405578063dc8889d814610418578063dd62ed3e1461042b578063e9ca934b1461043e57600080fd5b8063b8963681146103d9578063b8ced735146103e1578063cc1776d3146103f4578063d3d2dc2f146103fd57600080fd5b80638da5cb5b116100de5780638da5cb5b1461038057806395d89b41146103ab5780639e5d6726146103b3578063a9059cbb146103c657600080fd5b806378cb3d1c146103255780637e34ec2d1461033857806380bc60da146103655780638cd09d501461036d57600080fd5b80632aeb68c41161018757806353e4a12e1161015657806353e4a12e146102cc57806370a08231146102df578063715018a6146103085780637462b9d31461031257600080fd5b80632aeb68c41461028e578063313ce567146102a157806339509351146102b05780634f7041a5146102c357600080fd5b806318160ddd116101c357806318160ddd146102435780631c11cc6a1461025557806323b872dd146102685780632839eadb1461027b57600080fd5b806306fdde03146101ea578063095ea7b3146102085780631672d24e1461022b575b600080fd5b6101f2610451565b6040516101ff9190611231565b60405180910390f35b61021b6102163660046112a2565b6104e3565b60405190151581526020016101ff565b61021b6102393660046112cc565b60981c60ff161590565b6002545b6040519081526020016101ff565b61021b6102633660046112cc565b6104fd565b61021b6102763660046112ee565b61057e565b61021b6102893660046112cc565b610599565b61021b61029c36600461132a565b610620565b604051601281526020016101ff565b61021b6102be3660046112a2565b610737565b61024760055481565b61021b6102da3660046112cc565b610759565b6102476102ed3660046112cc565b6001600160a01b031660009081526020819052604090205490565b6103106107d6565b005b61021b6103203660046112cc565b610859565b61021b61033336600461132a565b61090b565b61021b6103463660046112cc565b600c81901a60f890811b6001600160f81b03199081169290911b161490565b61021b6109c5565b61031061037b366004611367565b6109dc565b600754610393906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b6101f2610a54565b61021b6103c1366004611380565b610a63565b61021b6103d43660046112a2565b610ace565b61021b610add565b61021b6103ef36600461132a565b610b1b565b61024760065481565b61021b610bdc565b610310610413366004611367565b610c0a565b61021b6104263660046112cc565b610c7c565b6102476104393660046113b9565b610cfe565b61021b61044c3660046112cc565b610d29565b606060038054610460906113ec565b80601f016020809104026020016040519081016040528092919081815260200182805461048c906113ec565b80156104d95780601f106104ae576101008083540402835291602001916104d9565b820191906000526020600020905b8154815290600101906020018083116104bc57829003601f168201915b5050505050905090565b6000336104f1818585610dff565b60019150505b92915050565b6000606082901b816105146002600c86901a611453565b60ff1615905060015b601481101561057357811515600284836014811061053d5761053d611427565b6105499291901a611453565b60ff1615141561055e57506000949350505050565b9015908061056b8161148b565b91505061051d565b506001949350505050565b60003361058c858285610f23565b6105738585856001610f9d565b6000606082901b815b600a81101561061657816105b78260136114a6565b601481106105c7576105c7611427565b1a60f81b6001600160f81b0319168282601481106105e7576105e7611427565b1a60f81b6001600160f81b03191614610604575060009392505050565b8061060e8161148b565b9150506105a2565b5060019392505050565b600060018260ff16118015610639575060148260ff1611155b61068a5760405162461bcd60e51b815260206004820152601e60248201527f436f756e74206d757374206265206265747765656e203220616e64203230000060448201526064015b60405180910390fd5b606083901b6001805b601481101561072b57826106a86001836114a6565b601481106106b8576106b8611427565b1a60f81b6001600160f81b0319168382601481106106d8576106d8611427565b1a60f81b6001600160f81b031916141561071457816106f68161148b565b9250508460ff16821061070f57600193505050506104f7565b610719565b600191505b806107238161148b565b915050610693565b50600095945050505050565b6000336104f181858561074a8383610cfe565b61075491906114bd565b610dff565b6000606082901b815b600a81101561061657816107778260136114a6565b6014811061078757610787611427565b1a60f81b6001600160f81b0319168282601481106107a7576107a7611427565b1a60f81b6001600160f81b031916146107c4575060009392505050565b806107ce8161148b565b915050610762565b6007546001600160a01b0316336001600160a01b0316146108095760405162461bcd60e51b8152600401610681906114d5565b60075460405161dead916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b03191661dead179055565b6000606082901b816108736002600c86901a600f16611453565b60ff1615905060005b601481101561057357600083826014811061089957610899611427565b1a9050826108a85760016108ab565b60005b60ff166108c06002600f600485901c16611453565b60ff16141561072b57911591826108d85760016108db565b60005b60ff166108ec6002600f8416611453565b60ff16141561072b5791159150806109038161148b565b91505061087c565b6000808260ff16116109695760405162461bcd60e51b815260206004820152602160248201527f44697669736f72206d7573742062652067726561746572207468616e207a65726044820152606f60f81b6064820152608401610681565b606083901b6000805b60148110156109ad5782816014811061098d5761098d611427565b61099991901a836114bd565b9150806109a58161148b565b915050610972565b506109bb60ff851682611524565b1595945050505050565b6000603c6109d66201518042611524565b10905090565b6007546001600160a01b0316336001600160a01b031614610a0f5760405162461bcd60e51b8152600401610681906114d5565b600681905560055460408051918252602082018390527fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad8560591015b60405180910390a150565b606060048054610460906113ec565b6000606083901b815b6014811015610ac3576001600160f81b03198416828260148110610a9257610a92611427565b1a60f81b6001600160f81b0319161415610ab1576001925050506104f7565b80610abb8161148b565b915050610a6c565b506000949350505050565b6000336104f181858585610f9d565b6000806007610aef6201518042611538565b610afa9060046114bd565b610b049190611524565b90508060051480610b155750806006145b91505090565b600060148260ff161115610b875760405162461bcd60e51b815260206004820152602d60248201527f4e756d626572206f66206c656164696e67207a65726f2062797465732063616e60448201526c06e6f742065786365656420323609c1b6064820152608401610681565b606083901b60005b8360ff1681101561057357818160148110610bac57610bac611427565b1a60f81b6001600160f81b03191615610bca576000925050506104f7565b80610bd48161148b565b915050610b8f565b600080603c610beb8142611538565b610bf59190611524565b90506005811080610b15575060371115919050565b6007546001600160a01b0316336001600160a01b031614610c3d5760405162461bcd60e51b8152600401610681906114d5565b60058190556006546040805183815260208101929092527fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad856059101610a49565b6000606082901b815b60138110156106165781610c9a8260016114bd565b60148110610caa57610caa611427565b1a60f81b6001600160f81b031916828260148110610cca57610cca611427565b1a60f81b6001600160f81b03191614610ce257610cec565b5060009392505050565b80610cf68161148b565b915050610c85565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000606082901b610d38611212565b60005b6014811015610db4576000838260148110610d5857610d58611427565b1a9050600183600f831660108110610d7257610d72611427565b91151560209092020152600183600483901c600f1660108110610d9757610d97611427565b911515602090920201525080610dac8161148b565b915050610d3b565b5060005b60108160ff16101561057357818160ff1660108110610dd957610dd9611427565b6020020151610ded57506000949350505050565b80610df78161154c565b915050610db8565b6001600160a01b038316610e615760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610681565b6001600160a01b038216610ec25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610681565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610f2f8484610cfe565b90506000198114610f975781811015610f8a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610681565b610f978484848403610dff565b50505050565b6001600160a01b0384166110015760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610681565b6001600160a01b0383166110635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610681565b6001600160a01b038416600090815260208190526040902054828110156110db5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610681565b600082611101576064600554856110f2919061156c565b6110fc9190611538565b61111b565b606460065485611111919061156c565b61111b9190611538565b9050600061112982866114a6565b6001600160a01b038881166000818152602081815260408083208b8a039055938b168083529184902080548601905592518481529394509290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38115611209576007546001600160a01b0316600090815260208190526040812080548492906111be9084906114bd565b90915550506007546040518381526001600160a01b03918216918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505050505050565b6040518061020001604052806010906020820280368337509192915050565b600060208083528351808285015260005b8181101561125e57858101830151858201604001528201611242565b81811115611270576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461129d57600080fd5b919050565b600080604083850312156112b557600080fd5b6112be83611286565b946020939093013593505050565b6000602082840312156112de57600080fd5b6112e782611286565b9392505050565b60008060006060848603121561130357600080fd5b61130c84611286565b925061131a60208501611286565b9150604084013590509250925092565b6000806040838503121561133d57600080fd5b61134683611286565b9150602083013560ff8116811461135c57600080fd5b809150509250929050565b60006020828403121561137957600080fd5b5035919050565b6000806040838503121561139357600080fd5b61139c83611286565b915060208301356001600160f81b03198116811461135c57600080fd5b600080604083850312156113cc57600080fd5b6113d583611286565b91506113e360208401611286565b90509250929050565b600181811c9082168061140057607f821691505b6020821081141561142157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060ff8316806114665761146661143d565b8060ff84160691505092915050565b634e487b7160e01b600052601160045260246000fd5b600060001982141561149f5761149f611475565b5060010190565b6000828210156114b8576114b8611475565b500390565b600082198211156114d0576114d0611475565b500190565b6020808252602f908201527f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60408201526e103a3434b990333ab731ba34b7b71760891b606082015260800190565b6000826115335761153361143d565b500690565b6000826115475761154761143d565b500490565b600060ff821660ff81141561156357611563611475565b60010192915050565b600081600019048311821515161561158657611586611475565b50029056fea264697066735822122093c24a54cdf747793561ac8cd81056966eaaec4610def96673c5a9839f74c5cb64736f6c63430008090033