0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063c0c7bcb511610097578063d79c395311610071578063d79c395314610372578063dd62ed3e1461037b578063f2fde38b1461038e578063f8b98509146103a157600080fd5b8063c0c7bcb514610343578063c72c6a051461034c578063c7ce4b471461035f57600080fd5b80638da5cb5b116100d35780638da5cb5b146102fa57806395d89b4114610315578063a457c2d71461031d578063a9059cbb1461033057600080fd5b806370a08231146102b6578063715018a6146102df57806379cc6790146102e757600080fd5b80632717e04c11610166578063395093511161014057806339509351146102675780633eb1392c1461027a5780634fb746c8146102835780635169479f146102a357600080fd5b80632717e04c14610232578063313ce5671461024557806331bab0241461025457600080fd5b80630213c238146101ae57806306fdde03146101ca578063095ea7b3146101df57806318160ddd1461020257806319fd85c21461020a57806323b872dd1461021f575b600080fd5b6101b7600a5481565b6040519081526020015b60405180910390f35b6101d26103aa565b6040516101c19190611537565b6101f26101ed36600461159a565b61043c565b60405190151581526020016101c1565b6002546101b7565b61021d610218366004611631565b610456565b005b6101f261022d3660046116c7565b6106fb565b6101b7610240366004611631565b61071f565b604051601281526020016101c1565b61021d610262366004611708565b61078a565b6101f261027536600461159a565b6107a9565b6101b760065481565b610296610291366004611797565b6107cb565b6040516101c191906117b4565b61021d6102b1366004611631565b610958565b6101b76102c4366004611797565b6001600160a01b031660009081526020819052604090205490565b61021d610b88565b61021d6102f536600461159a565b610b9c565b6005546040516001600160a01b0390911681526020016101c1565b6101d2610c4b565b6101f261032b36600461159a565b610c5a565b6101f261033e36600461159a565b610cd5565b6101b760095481565b61021d61035a366004611797565b610ce3565b6101b761036d366004611631565b610d0d565b6101b760085481565b6101b76103893660046117f8565b610d52565b61021d61039c366004611797565b610d7d565b6101b760075481565b6060600380546103b990611831565b80601f01602080910402602001604051908101604052809291908181526020018280546103e590611831565b80156104325780601f1061040757610100808354040283529160200191610432565b820191906000526020600020905b81548152906001019060200180831161041557829003601f168201915b5050505050905090565b60003361044a818585610df6565b60019150505b92915050565b60008151116104805760405162461bcd60e51b81526004016104779061186b565b60405180910390fd5b600e54815160009182916001600160a01b0390911690636352211e90859084906104ac576104ac6118ac565b60200260200101516040518263ffffffff1660e01b81526004016104d291815260200190565b602060405180830381865afa1580156104ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051391906118c2565b905060005b83518110156106ad57600e5484516001600160a01b0390911690636352211e9086908490811061054a5761054a6118ac565b60200260200101516040518263ffffffff1660e01b815260040161057091815260200190565b602060405180830381865afa15801561058d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b191906118c2565b6001600160a01b0316826001600160a01b0316146106255760405162461bcd60e51b815260206004820152602b60248201527f416c6c206865726f6573206d7573742062656c6f6e6720746f2074686520736160448201526a36b29030b2323932b9b99760a91b6064820152608401610477565b61065d600c600086848151811061063e5761063e6118ac565b6020026020010151815260200190815260200160002054600a54610f1a565b61066790846118f5565b925042600c6000868481518110610680576106806118ac565b602002602001015181526020019081526020016000208190555080806106a590611908565b915050610518565b50600082116106ec5760405162461bcd60e51b815260206004820152600b60248201526a052657761726420697320360ac1b6044820152606401610477565b6106f68183610f79565b505050565b600033610709858285611058565b6107148585856110d2565b506001949350505050565b600080805b835181101561078357610765600b6000868481518110610746576107466118ac565b6020026020010151815260200190815260200160002054600954610f1a565b61076f90836118f5565b91508061077b81611908565b915050610724565b5092915050565b6107926112a0565b80516107a590600f9060208401906114bd565b5050565b60003361044a8185856107bc8383610d52565b6107c691906118f5565b610df6565b600d546040516370a0823160e01b81526001600160a01b0383811660048301526060926000929116906370a0823190602401602060405180830381865afa15801561081a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083e9190611921565b905060008167ffffffffffffffff81111561085b5761085b6115c6565b604051908082528060200260200182016040528015610884578160200160208202803683370190505b509050600060015b8382101561094e57600d546040516331a9108f60e11b8152600481018390526001600160a01b03888116921690636352211e90602401602060405180830381865afa1580156108df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090391906118c2565b6001600160a01b03160361093c5780838361091d81611908565b94508151811061092f5761092f6118ac565b6020026020010181815250505b8061094681611908565b91505061088c565b5090949350505050565b60008151116109795760405162461bcd60e51b81526004016104779061186b565b600d54815160009182916001600160a01b0390911690636352211e90859084906109a5576109a56118ac565b60200260200101516040518263ffffffff1660e01b81526004016109cb91815260200190565b602060405180830381865afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c91906118c2565b905060005b83518110156106ad57600d5484516001600160a01b0390911690636352211e90869084908110610a4357610a436118ac565b60200260200101516040518263ffffffff1660e01b8152600401610a6991815260200190565b602060405180830381865afa158015610a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaa91906118c2565b6001600160a01b0316826001600160a01b031614610b1f5760405162461bcd60e51b815260206004820152602c60248201527f416c6c20706c616e657473206d7573742062656c6f6e6720746f20746865207360448201526b30b6b29030b2323932b9b99760a11b6064820152608401610477565b610b38600b6000868481518110610746576107466118ac565b610b4290846118f5565b925042600b6000868481518110610b5b57610b5b6118ac565b60200260200101518152602001908152602001600020819055508080610b8090611908565b915050610a11565b610b906112a0565b610b9a60006112fa565b565b6000805b600f54811015610bf357600f8181548110610bbd57610bbd6118ac565b6000918252602090912001546001600160a01b03163303610be15760019150610bf3565b80610beb81611908565b915050610ba0565b5080610c415760405162461bcd60e51b815260206004820152601c60248201527f596f7520617265206e6f7420616c6c6f77656420746f206275726e2e000000006044820152606401610477565b6106f6838361134c565b6060600480546103b990611831565b60003381610c688286610d52565b905083811015610cc85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610477565b6107148286868403610df6565b60003361044a8185856110d2565b610ceb6112a0565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b835181101561078357610d34600c600086848151811061063e5761063e6118ac565b610d3e90836118f5565b915080610d4a81611908565b915050610d12565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610d856112a0565b6001600160a01b038116610dea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610477565b610df3816112fa565b50565b6001600160a01b038316610e585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610477565b6001600160a01b038216610eb95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610477565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008060008411610f2d57600654610f2f565b835b905060006007544210610f4457600754610f46565b425b90506000610f54838361149a565b90508460085482610f65919061193a565b610f6f919061193a565b9695505050505050565b6001600160a01b038216610fcf5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610477565b8060026000828254610fe191906118f5565b90915550506001600160a01b0382166000908152602081905260408120805483929061100e9084906118f5565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60006110648484610d52565b905060001981146110cc57818110156110bf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610477565b6110cc8484848403610df6565b50505050565b6001600160a01b0383166111365760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610477565b6001600160a01b0382166111985760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610477565b6001600160a01b038316600090815260208190526040902054818110156112105760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610477565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906112479084906118f5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161129391815260200190565b60405180910390a36110cc565b6005546001600160a01b03163314610b9a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610477565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166113ac5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610477565b6001600160a01b038216600090815260208190526040902054818110156114205760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610477565b6001600160a01b038316600090815260208190526040812083830390556002805484929061144f908490611951565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6000818310156114b3576114ae8383611951565b6114b6565b60005b9392505050565b828054828255906000526020600020908101928215611512579160200282015b8281111561151257825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906114dd565b5061151e929150611522565b5090565b5b8082111561151e5760008155600101611523565b600060208083528351808285015260005b8181101561156457858101830151858201604001528201611548565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610df357600080fd5b600080604083850312156115ad57600080fd5b82356115b881611585565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611605576116056115c6565b604052919050565b600067ffffffffffffffff821115611627576116276115c6565b5060051b60200190565b6000602080838503121561164457600080fd5b823567ffffffffffffffff81111561165b57600080fd5b8301601f8101851361166c57600080fd5b803561167f61167a8261160d565b6115dc565b81815260059190911b8201830190838101908783111561169e57600080fd5b928401925b828410156116bc578335825292840192908401906116a3565b979650505050505050565b6000806000606084860312156116dc57600080fd5b83356116e781611585565b925060208401356116f781611585565b929592945050506040919091013590565b6000602080838503121561171b57600080fd5b823567ffffffffffffffff81111561173257600080fd5b8301601f8101851361174357600080fd5b803561175161167a8261160d565b81815260059190911b8201830190838101908783111561177057600080fd5b928401925b828410156116bc57833561178881611585565b82529284019290840190611775565b6000602082840312156117a957600080fd5b81356114b681611585565b6020808252825182820181905260009190848201906040850190845b818110156117ec578351835292840192918401916001016117d0565b50909695505050505050565b6000806040838503121561180b57600080fd5b823561181681611585565b9150602083013561182681611585565b809150509250929050565b600181811c9082168061184557607f821691505b60208210810361186557634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526021908201527f596f75206d7573742073656e642061206c697374206f6620746f6b656e2049446040820152607360f81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118d457600080fd5b81516114b681611585565b634e487b7160e01b600052601160045260246000fd5b80820180821115610450576104506118df565b60006001820161191a5761191a6118df565b5060010190565b60006020828403121561193357600080fd5b5051919050565b8082028115828204841417610450576104506118df565b81810381811115610450576104506118df56fea2646970667358221220a578f9555bcd69143450ed1c0d9a794bf2f7ce1c4e11ffb68f6642fd4c2b55ad64736f6c63430008110033
0x6080604052636302138b60068190556200001e90630784ce0062000348565b600755652c3839d4380060085560646009556001600a55600d80546001600160a01b03191673a808f088391839728897b83849323cf823ab73af1790553480156200006857600080fd5b506040518060400160405280601381526020017f50696e2047616c617879205374617264757374000000000000000000000000008152506040518060400160405280600881526020016714125391d05314d160c21b8152508160039081620000d1919062000408565b506004620000e0828262000408565b505050620000fd620000f7620001ef60201b60201c565b620001f3565b6000600654426200010f9190620004d4565b9050600060095460085483620001269190620004ea565b620001329190620004ea565b905060015b60fa8111620001e657600d546040516331a9108f60e11b8152600481018390526000916001600160a01b031690636352211e90602401602060405180830381865afa1580156200018b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b1919062000504565b9050620001bf818462000245565b506000818152600b6020526040902042905580620001dd8162000536565b91505062000137565b50505062000552565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620002a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620002b4919062000348565b90915550506001600160a01b03821660009081526020819052604081208054839290620002e390849062000348565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200035e576200035e62000332565b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200038f57607f821691505b602082108103620003b057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200032d57600081815260208120601f850160051c81016020861015620003df5750805b601f850160051c820191505b818110156200040057828155600101620003eb565b505050505050565b81516001600160401b0381111562000424576200042462000364565b6200043c816200043584546200037a565b84620003b6565b602080601f8311600181146200047457600084156200045b5750858301515b600019600386901b1c1916600185901b17855562000400565b600085815260208120601f198616915b82811015620004a55788860151825594840194600190910190840162000484565b5085821015620004c45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103818111156200035e576200035e62000332565b80820281158282048414176200035e576200035e62000332565b6000602082840312156200051757600080fd5b81516001600160a01b03811681146200052f57600080fd5b9392505050565b6000600182016200054b576200054b62000332565b5060010190565b61199a80620005626000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063c0c7bcb511610097578063d79c395311610071578063d79c395314610372578063dd62ed3e1461037b578063f2fde38b1461038e578063f8b98509146103a157600080fd5b8063c0c7bcb514610343578063c72c6a051461034c578063c7ce4b471461035f57600080fd5b80638da5cb5b116100d35780638da5cb5b146102fa57806395d89b4114610315578063a457c2d71461031d578063a9059cbb1461033057600080fd5b806370a08231146102b6578063715018a6146102df57806379cc6790146102e757600080fd5b80632717e04c11610166578063395093511161014057806339509351146102675780633eb1392c1461027a5780634fb746c8146102835780635169479f146102a357600080fd5b80632717e04c14610232578063313ce5671461024557806331bab0241461025457600080fd5b80630213c238146101ae57806306fdde03146101ca578063095ea7b3146101df57806318160ddd1461020257806319fd85c21461020a57806323b872dd1461021f575b600080fd5b6101b7600a5481565b6040519081526020015b60405180910390f35b6101d26103aa565b6040516101c19190611537565b6101f26101ed36600461159a565b61043c565b60405190151581526020016101c1565b6002546101b7565b61021d610218366004611631565b610456565b005b6101f261022d3660046116c7565b6106fb565b6101b7610240366004611631565b61071f565b604051601281526020016101c1565b61021d610262366004611708565b61078a565b6101f261027536600461159a565b6107a9565b6101b760065481565b610296610291366004611797565b6107cb565b6040516101c191906117b4565b61021d6102b1366004611631565b610958565b6101b76102c4366004611797565b6001600160a01b031660009081526020819052604090205490565b61021d610b88565b61021d6102f536600461159a565b610b9c565b6005546040516001600160a01b0390911681526020016101c1565b6101d2610c4b565b6101f261032b36600461159a565b610c5a565b6101f261033e36600461159a565b610cd5565b6101b760095481565b61021d61035a366004611797565b610ce3565b6101b761036d366004611631565b610d0d565b6101b760085481565b6101b76103893660046117f8565b610d52565b61021d61039c366004611797565b610d7d565b6101b760075481565b6060600380546103b990611831565b80601f01602080910402602001604051908101604052809291908181526020018280546103e590611831565b80156104325780601f1061040757610100808354040283529160200191610432565b820191906000526020600020905b81548152906001019060200180831161041557829003601f168201915b5050505050905090565b60003361044a818585610df6565b60019150505b92915050565b60008151116104805760405162461bcd60e51b81526004016104779061186b565b60405180910390fd5b600e54815160009182916001600160a01b0390911690636352211e90859084906104ac576104ac6118ac565b60200260200101516040518263ffffffff1660e01b81526004016104d291815260200190565b602060405180830381865afa1580156104ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051391906118c2565b905060005b83518110156106ad57600e5484516001600160a01b0390911690636352211e9086908490811061054a5761054a6118ac565b60200260200101516040518263ffffffff1660e01b815260040161057091815260200190565b602060405180830381865afa15801561058d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b191906118c2565b6001600160a01b0316826001600160a01b0316146106255760405162461bcd60e51b815260206004820152602b60248201527f416c6c206865726f6573206d7573742062656c6f6e6720746f2074686520736160448201526a36b29030b2323932b9b99760a91b6064820152608401610477565b61065d600c600086848151811061063e5761063e6118ac565b6020026020010151815260200190815260200160002054600a54610f1a565b61066790846118f5565b925042600c6000868481518110610680576106806118ac565b602002602001015181526020019081526020016000208190555080806106a590611908565b915050610518565b50600082116106ec5760405162461bcd60e51b815260206004820152600b60248201526a052657761726420697320360ac1b6044820152606401610477565b6106f68183610f79565b505050565b600033610709858285611058565b6107148585856110d2565b506001949350505050565b600080805b835181101561078357610765600b6000868481518110610746576107466118ac565b6020026020010151815260200190815260200160002054600954610f1a565b61076f90836118f5565b91508061077b81611908565b915050610724565b5092915050565b6107926112a0565b80516107a590600f9060208401906114bd565b5050565b60003361044a8185856107bc8383610d52565b6107c691906118f5565b610df6565b600d546040516370a0823160e01b81526001600160a01b0383811660048301526060926000929116906370a0823190602401602060405180830381865afa15801561081a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083e9190611921565b905060008167ffffffffffffffff81111561085b5761085b6115c6565b604051908082528060200260200182016040528015610884578160200160208202803683370190505b509050600060015b8382101561094e57600d546040516331a9108f60e11b8152600481018390526001600160a01b03888116921690636352211e90602401602060405180830381865afa1580156108df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090391906118c2565b6001600160a01b03160361093c5780838361091d81611908565b94508151811061092f5761092f6118ac565b6020026020010181815250505b8061094681611908565b91505061088c565b5090949350505050565b60008151116109795760405162461bcd60e51b81526004016104779061186b565b600d54815160009182916001600160a01b0390911690636352211e90859084906109a5576109a56118ac565b60200260200101516040518263ffffffff1660e01b81526004016109cb91815260200190565b602060405180830381865afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c91906118c2565b905060005b83518110156106ad57600d5484516001600160a01b0390911690636352211e90869084908110610a4357610a436118ac565b60200260200101516040518263ffffffff1660e01b8152600401610a6991815260200190565b602060405180830381865afa158015610a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaa91906118c2565b6001600160a01b0316826001600160a01b031614610b1f5760405162461bcd60e51b815260206004820152602c60248201527f416c6c20706c616e657473206d7573742062656c6f6e6720746f20746865207360448201526b30b6b29030b2323932b9b99760a11b6064820152608401610477565b610b38600b6000868481518110610746576107466118ac565b610b4290846118f5565b925042600b6000868481518110610b5b57610b5b6118ac565b60200260200101518152602001908152602001600020819055508080610b8090611908565b915050610a11565b610b906112a0565b610b9a60006112fa565b565b6000805b600f54811015610bf357600f8181548110610bbd57610bbd6118ac565b6000918252602090912001546001600160a01b03163303610be15760019150610bf3565b80610beb81611908565b915050610ba0565b5080610c415760405162461bcd60e51b815260206004820152601c60248201527f596f7520617265206e6f7420616c6c6f77656420746f206275726e2e000000006044820152606401610477565b6106f6838361134c565b6060600480546103b990611831565b60003381610c688286610d52565b905083811015610cc85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610477565b6107148286868403610df6565b60003361044a8185856110d2565b610ceb6112a0565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b835181101561078357610d34600c600086848151811061063e5761063e6118ac565b610d3e90836118f5565b915080610d4a81611908565b915050610d12565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610d856112a0565b6001600160a01b038116610dea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610477565b610df3816112fa565b50565b6001600160a01b038316610e585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610477565b6001600160a01b038216610eb95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610477565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008060008411610f2d57600654610f2f565b835b905060006007544210610f4457600754610f46565b425b90506000610f54838361149a565b90508460085482610f65919061193a565b610f6f919061193a565b9695505050505050565b6001600160a01b038216610fcf5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610477565b8060026000828254610fe191906118f5565b90915550506001600160a01b0382166000908152602081905260408120805483929061100e9084906118f5565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60006110648484610d52565b905060001981146110cc57818110156110bf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610477565b6110cc8484848403610df6565b50505050565b6001600160a01b0383166111365760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610477565b6001600160a01b0382166111985760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610477565b6001600160a01b038316600090815260208190526040902054818110156112105760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610477565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906112479084906118f5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161129391815260200190565b60405180910390a36110cc565b6005546001600160a01b03163314610b9a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610477565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166113ac5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610477565b6001600160a01b038216600090815260208190526040902054818110156114205760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610477565b6001600160a01b038316600090815260208190526040812083830390556002805484929061144f908490611951565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6000818310156114b3576114ae8383611951565b6114b6565b60005b9392505050565b828054828255906000526020600020908101928215611512579160200282015b8281111561151257825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906114dd565b5061151e929150611522565b5090565b5b8082111561151e5760008155600101611523565b600060208083528351808285015260005b8181101561156457858101830151858201604001528201611548565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610df357600080fd5b600080604083850312156115ad57600080fd5b82356115b881611585565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611605576116056115c6565b604052919050565b600067ffffffffffffffff821115611627576116276115c6565b5060051b60200190565b6000602080838503121561164457600080fd5b823567ffffffffffffffff81111561165b57600080fd5b8301601f8101851361166c57600080fd5b803561167f61167a8261160d565b6115dc565b81815260059190911b8201830190838101908783111561169e57600080fd5b928401925b828410156116bc578335825292840192908401906116a3565b979650505050505050565b6000806000606084860312156116dc57600080fd5b83356116e781611585565b925060208401356116f781611585565b929592945050506040919091013590565b6000602080838503121561171b57600080fd5b823567ffffffffffffffff81111561173257600080fd5b8301601f8101851361174357600080fd5b803561175161167a8261160d565b81815260059190911b8201830190838101908783111561177057600080fd5b928401925b828410156116bc57833561178881611585565b82529284019290840190611775565b6000602082840312156117a957600080fd5b81356114b681611585565b6020808252825182820181905260009190848201906040850190845b818110156117ec578351835292840192918401916001016117d0565b50909695505050505050565b6000806040838503121561180b57600080fd5b823561181681611585565b9150602083013561182681611585565b809150509250929050565b600181811c9082168061184557607f821691505b60208210810361186557634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526021908201527f596f75206d7573742073656e642061206c697374206f6620746f6b656e2049446040820152607360f81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118d457600080fd5b81516114b681611585565b634e487b7160e01b600052601160045260246000fd5b80820180821115610450576104506118df565b60006001820161191a5761191a6118df565b5060010190565b60006020828403121561193357600080fd5b5051919050565b8082028115828204841417610450576104506118df565b81810381811115610450576104506118df56fea2646970667358221220a578f9555bcd69143450ed1c0d9a794bf2f7ce1c4e11ffb68f6642fd4c2b55ad64736f6c63430008110033