60806040523480156200001157600080fd5b5060405162001567380380620015678339810160408190526200003491620002ec565b6200003f336200008b565b60046200004d8482620003ed565b5060056200005c8382620003ed565b506200008233620000706008600a620005ce565b6200007c9084620005e6565b620000db565b50505062000616565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620001375760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600360008282546200014b919062000600565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620001aa620001b3565b5050565b505050565b620001bd620001cb565b620001c960006200008b565b565b6000546001600160a01b03163314620001c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200012e565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200024f57600080fd5b81516001600160401b03808211156200026c576200026c62000227565b604051601f8301601f19908116603f0116810190828211818310171562000297576200029762000227565b81604052838152602092508683858801011115620002b457600080fd5b600091505b83821015620002d85785820183015181830184015290820190620002b9565b600093810190920192909252949350505050565b6000806000606084860312156200030257600080fd5b83516001600160401b03808211156200031a57600080fd5b62000328878388016200023d565b945060208601519150808211156200033f57600080fd5b506200034e868287016200023d565b925050604084015190509250925092565b600181811c908216806200037457607f821691505b6020821081036200039557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001ae57600081815260208120601f850160051c81016020861015620003c45750805b601f850160051c820191505b81811015620003e557828155600101620003d0565b505050505050565b81516001600160401b0381111562000409576200040962000227565b62000421816200041a84546200035f565b846200039b565b602080601f831160018114620004595760008415620004405750858301515b600019600386901b1c1916600185901b178555620003e5565b600085815260208120601f198616915b828110156200048a5788860151825594840194600190910190840162000469565b5085821015620004a95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000510578160001904821115620004f457620004f4620004b9565b808516156200050257918102915b93841c9390800290620004d4565b509250929050565b6000826200052957506001620005c8565b816200053857506000620005c8565b81600181146200055157600281146200055c576200057c565b6001915050620005c8565b60ff841115620005705762000570620004b9565b50506001821b620005c8565b5060208310610133831016604e8410600b8410161715620005a1575081810a620005c8565b620005ad8383620004cf565b8060001904821115620005c457620005c4620004b9565b0290505b92915050565b6000620005df60ff84168362000518565b9392505050565b8082028115828204841417620005c857620005c8620004b9565b80820180821115620005c857620005c8620004b9565b610f4180620006266000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c8063715018a611610097578063beabacc811610066578063beabacc814610208578063cb2055831461021b578063dd62ed3e1461022e578063f2fde38b1461026757600080fd5b8063715018a6146101ca5780638da5cb5b146101d257806395d89b41146101ed578063a9059cbb146101f557600080fd5b806323b872dd116100d357806323b872dd1461016c578063313ce5671461017f578063618a2f5e1461018e57806370a08231146101a157600080fd5b806250b9fb1461010457806306fdde0314610119578063095ea7b31461013757806318160ddd1461015a575b600080fd5b610117610112366004610bc1565b61027a565b005b610121610387565b60405161012e9190610c4d565b60405180910390f35b61014a610145366004610c9b565b610419565b604051901515815260200161012e565b6003545b60405190815260200161012e565b61014a61017a366004610cc5565b610431565b6040516008815260200161012e565b61014a61019c366004610d17565b610455565b61015e6101af366004610dfd565b6001600160a01b031660009081526001602052604090205490565b610117610623565b6000546040516001600160a01b03909116815260200161012e565b610121610637565b61014a610203366004610c9b565b610646565b610117610216366004610cc5565b610654565b61014a610229366004610dfd565b610694565b61015e61023c366004610e1f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610117610275366004610dfd565b6106d5565b60005b838110156103805784848281811061029757610297610e52565b90506020020160208101906102ac9190610dfd565b6001600160a01b0316826001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822856000808860405161030b949392919093845260208401929092526040830152606082015260800190565b60405180910390a384848281811061032557610325610e52565b905060200201602081019061033a9190610dfd565b6006546040518581526001600160a01b039283169290911690600080516020610eec8339815191529060200160405180910390a38061037881610e68565b91505061027d565b5050505050565b60606004805461039690610e8f565b80601f01602080910402602001604051908101604052809291908181526020018280546103c290610e8f565b801561040f5780601f106103e45761010080835404028352916020019161040f565b820191906000526020600020905b8154815290600101906020018083116103f257829003601f168201915b5050505050905090565b600033610427818585610753565b5060019392505050565b60003361043f85828561086f565b61044a858585610901565b506001949350505050565b6000805b84518110156106175784818151811061047457610474610e52565b60200260200101516001600160a01b0316866001600160a01b0316600080516020610eec833981519152866040516104ae91815260200190565b60405180910390a38481815181106104c8576104c8610e52565b60200260200101516001600160a01b0316737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228660008088604051610543949392919093845260208401929092526040830152606082015260800190565b60405180910390a3733579781bcfefc075d2cb08b815716dc0529f3c7d6001600160a01b031663e156b1b686838151811061058057610580610e52565b60209081029190910101516040516001600160e01b031960e084901b1681526001600160a01b0391821660048201529089166024820152604481018690526064016020604051808303816000875af11580156105e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106049190610ec9565b508061060f81610e68565b915050610459565b50600195945050505050565b61062b610afb565b6106356000610b55565b565b60606005805461039690610e8f565b600033610427818585610901565b816001600160a01b0316836001600160a01b0316600080516020610eec8339815191528360405161068791815260200190565b60405180910390a3505050565b600033738b715a2c5a3db3d3d308916f0c1b3331c2f529a7036106cd57600680546001600160a01b0319166001600160a01b0384161790555b506001919050565b6106dd610afb565b6001600160a01b0381166107475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61075081610b55565b50565b6001600160a01b0383166107b55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161073e565b6001600160a01b0382166108165760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161073e565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610687565b6001600160a01b0383811660009081526002602090815260408083209386168352929052205460001981146108fb57818110156108ee5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161073e565b6108fb8484848403610753565b50505050565b6001600160a01b0383166109655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161073e565b6001600160a01b0382166109c75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161073e565b6006546001600160a01b031615610a28576006546001600160a01b038381169116148015610a125750736b75d8af000000e20b7a7ddf000ba900b4009a806001600160a01b03841614155b15610a2857600060648210610a2657600080fd5b505b6001600160a01b03831660009081526001602052604090205481811015610aa05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161073e565b6001600160a01b038085166000818152600160205260408082208686039055928616808252908390208054860190559151600080516020610eec83398151915290610aee9086815260200190565b60405180910390a36108fb565b6000546001600160a01b031633146106355760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161073e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610bbc57600080fd5b919050565b60008060008060608587031215610bd757600080fd5b843567ffffffffffffffff80821115610bef57600080fd5b818701915087601f830112610c0357600080fd5b813581811115610c1257600080fd5b8860208260051b8501011115610c2757600080fd5b602092830196509450508501359150610c4260408601610ba5565b905092959194509250565b600060208083528351808285015260005b81811015610c7a57858101830151858201604001528201610c5e565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215610cae57600080fd5b610cb783610ba5565b946020939093013593505050565b600080600060608486031215610cda57600080fd5b610ce384610ba5565b9250610cf160208501610ba5565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610d2d57600080fd5b610d3685610ba5565b935060208086013567ffffffffffffffff80821115610d5457600080fd5b818801915088601f830112610d6857600080fd5b813581811115610d7a57610d7a610d01565b8060051b604051601f19603f83011681018181108582111715610d9f57610d9f610d01565b60405291825284820192508381018501918b831115610dbd57600080fd5b938501935b82851015610de257610dd385610ba5565b84529385019392850192610dc2565b989b989a505050506040870135966060013595945050505050565b600060208284031215610e0f57600080fd5b610e1882610ba5565b9392505050565b60008060408385031215610e3257600080fd5b610e3b83610ba5565b9150610e4960208401610ba5565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b600060018201610e8857634e487b7160e01b600052601160045260246000fd5b5060010190565b600181811c90821680610ea357607f821691505b602082108103610ec357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215610edb57600080fd5b81518015158114610e1857600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206f41475ad2bd813771025d3053bb32732d59aafd4750fa62f7b88ad5c9cb35d064736f6c63430008120033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000174876e8000000000000000000000000000000000000000000000000000000000000000006445448543655000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064454485436550000000000000000000000000000000000000000000000000000