60806040523480156200001157600080fd5b50604051620013fd380380620013fd83398101604081905262000034916200020d565b6000620000428a826200036d565b5060016200005189826200036d565b506002805460ff191660ff89169081179091556200007190600a6200054e565b6200007d908762000563565b600381905533600081815260046020526040808220849055600680546001600160a01b038b81166001600160a01b03199283161790925560078054928b169282169290921790915560088890556009879055600a869055600b80549091168417905551919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620001149190815260200190565b60405180910390a35050505050505050506200057d565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200015357600080fd5b81516001600160401b03808211156200017057620001706200012b565b604051601f8301601f19908116603f011681019082821181831017156200019b576200019b6200012b565b81604052838152602092508683858801011115620001b857600080fd5b600091505b83821015620001dc5785820183015181830184015290820190620001bd565b600093810190920192909252949350505050565b80516001600160a01b03811681146200020857600080fd5b919050565b60008060008060008060008060006101208a8c0312156200022d57600080fd5b89516001600160401b03808211156200024557600080fd5b620002538d838e0162000141565b9a5060208c01519150808211156200026a57600080fd5b50620002798c828d0162000141565b98505060408a015160ff811681146200029157600080fd5b60608b01519097509550620002a960808b01620001f0565b9450620002b960a08b01620001f0565b935060c08a0151925060e08a015191506101008a015190509295985092959850929598565b600181811c90821680620002f357607f821691505b6020821081036200031457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200036857600081815260208120601f850160051c81016020861015620003435750805b601f850160051c820191505b8181101562000364578281556001016200034f565b5050505b505050565b81516001600160401b038111156200038957620003896200012b565b620003a1816200039a8454620002de565b846200031a565b602080601f831160018114620003d95760008415620003c05750858301515b600019600386901b1c1916600185901b17855562000364565b600085815260208120601f198616915b828110156200040a57888601518255948401946001909101908401620003e9565b5085821015620004295787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200049057816000190482111562000474576200047462000439565b808516156200048257918102915b93841c939080029062000454565b509250929050565b600082620004a95750600162000548565b81620004b85750600062000548565b8160018114620004d15760028114620004dc57620004fc565b600191505062000548565b60ff841115620004f057620004f062000439565b50506001821b62000548565b5060208310610133831016604e8410600b841016171562000521575081810a62000548565b6200052d83836200044f565b806000190482111562000544576200054462000439565b0290505b92915050565b60006200055c838362000498565b9392505050565b808202811582820484141762000548576200054862000439565b610e70806200058d6000396000f3fe608060405234801561001057600080fd5b506004361061014c5760003560e01c80636f5e0212116100c35780639b4dc8cc1161007c5780639b4dc8cc146102bc5780639e938a9d146102cf578063a457c2d7146102d7578063a9059cbb146102ea578063d9c4941e146102fd578063dd62ed3e1461030657600080fd5b80636f5e02121461024a57806370a082311461025d578063715018a61461028657806382bf293c1461028e5780638da5cb5b146102a157806395d89b41146102b457600080fd5b80631e11040f116101155780631e11040f146101e057806323b872dd146101f3578063313ce5671461020657806339509351146102255780633d9a3d19146102385780633f7750ee1461024157600080fd5b8062f380f414610151578063021559571461018157806306fdde0314610196578063095ea7b3146101ab57806318160ddd146101ce575b600080fd5b600654610164906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61019461018f366004610c08565b61033f565b005b61019e610377565b6040516101789190610c21565b6101be6101b9366004610c8b565b610405565b6040519015158152602001610178565b6003545b604051908152602001610178565b6101946101ee366004610c08565b61041c565b6101be610201366004610cb5565b61044b565b6002546102139060ff1681565b60405160ff9091168152602001610178565b6101be610233366004610c8b565b6104f5565b6101d2600a5481565b6101d260085481565b610194610258366004610cf1565b610531565b6101d261026b366004610cf1565b6001600160a01b031660009081526004602052604090205490565b6101946105e5565b61019461029c366004610c08565b610621565b600b54610164906001600160a01b031681565b61019e610650565b600754610164906001600160a01b031681565b61019461065d565b6101be6102e5366004610c8b565b6106f1565b6101be6102f8366004610c8b565b61078a565b6101d260095481565b6101d2610314366004610d13565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b600b546001600160a01b031633146103725760405162461bcd60e51b815260040161036990610d46565b60405180910390fd5b600955565b6000805461038490610d8b565b80601f01602080910402602001604051908101604052809291908181526020018280546103b090610d8b565b80156103fd5780601f106103d2576101008083540402835291602001916103fd565b820191906000526020600020905b8154815290600101906020018083116103e057829003601f168201915b505050505081565b6000610412338484610797565b5060015b92915050565b600b546001600160a01b031633146104465760405162461bcd60e51b815260040161036990610d46565b600855565b60006104588484846108bb565b6001600160a01b0384166000908152600560209081526040808320338452909152902054828110156104dd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610369565b6104ea8533858403610797565b506001949350505050565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161041291859061052c908690610ddb565b610797565b600b546001600160a01b0316331461055b5760405162461bcd60e51b815260040161036990610d46565b6001600160a01b0381166105c35760405162461bcd60e51b815260206004820152602960248201527f4e6577204c5020616464726573732063616e6e6f7420626520746865207a65726044820152686f206164647265737360b81b6064820152608401610369565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b0316331461060f5760405162461bcd60e51b815260040161036990610d46565b600b80546001600160a01b0319169055565b600b546001600160a01b0316331461064b5760405162461bcd60e51b815260040161036990610d46565b600a55565b6001805461038490610d8b565b600b546001600160a01b031633146106875760405162461bcd60e51b815260040161036990610d46565b600760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106d757600080fd5b505af11580156106eb573d6000803e3d6000fd5b50505050565b3360009081526005602090815260408083206001600160a01b0386168452909152812054828110156107735760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610369565b6107803385858403610797565b5060019392505050565b60006104123384846108bb565b6001600160a01b0383166107f95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610369565b6001600160a01b03821661085a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610369565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661091f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610369565b6001600160a01b0382166109815760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610369565b60006064600a546003546109959190610dee565b61099f9190610e05565b6001600160a01b03841660009081526004602052604090205490915081906109c8908490610ddb565b1115610a165760405162461bcd60e51b815260206004820152601f60248201527f526563697069656e742077616c6c6574206c696d6974206578636565646564006044820152606401610369565b6000606460085484610a289190610dee565b610a329190610e05565b90506000606460095485610a469190610dee565b610a509190610e05565b9050600081610a5f8487610e27565b610a699190610e27565b6001600160a01b038816600090815260046020526040812080549293508792909190610a96908490610e27565b90915550506001600160a01b03861660009081526004602052604081208054839290610ac3908490610ddb565b90915550506006546001600160a01b031660009081526004602052604081208054859290610af2908490610ddb565b90915550506007546001600160a01b031660009081526004602052604081208054849290610b21908490610ddb565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b6d91815260200190565b60405180910390a36006546040518481526001600160a01b03918216918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36007546040518381526001600160a01b03918216918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050505050565b600060208284031215610c1a57600080fd5b5035919050565b600060208083528351808285015260005b81811015610c4e57858101830151858201604001528201610c32565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c8657600080fd5b919050565b60008060408385031215610c9e57600080fd5b610ca783610c6f565b946020939093013593505050565b600080600060608486031215610cca57600080fd5b610cd384610c6f565b9250610ce160208501610c6f565b9150604084013590509250925092565b600060208284031215610d0357600080fd5b610d0c82610c6f565b9392505050565b60008060408385031215610d2657600080fd5b610d2f83610c6f565b9150610d3d60208401610c6f565b90509250929050565b60208082526025908201527f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60408201526431ba34b7b760d91b606082015260800190565b600181811c90821680610d9f57607f821691505b602082108103610dbf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561041657610416610dc5565b808202811582820484141761041657610416610dc5565b600082610e2257634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561041657610416610dc556fea264697066735822122080b4b9c96d4274fb5e1949cfe1038ebca20bb4fcedf8fbbc36a1ee7a904ea30564736f6c63430008120033000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000f3bb4b37ff469971c4c9de1a02ebed8c0da6fe4b000000000000000000000000000000000000000000000000000000000000dead000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000000c466f7274756e65204265747300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007464f5254554e4500000000000000000000000000000000000000000000000000