0x60806040523480156200001157600080fd5b5060405162000c5738038062000c578339810160408190526200003491620001b5565b60405180604001604052806006815260200165263ab5b4b0b760d11b8152506040518060400160405280600c81526020016b5665726e694f627261746e6f60a01b8152506c0c9f2c9cd04674edea4000000082600490816200009791906200028b565b506005620000a683826200028b565b50600180546001600160a01b03191633908117909155620000c9908290620000d3565b505050506200037f565b6001546001600160a01b03163314620001225760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420616e206f776e65722160981b604482015260640160405180910390fd5b6001600160a01b038116600090815260026020526040812080548492906200014c90849062000357565b925050819055508160008082825462000166919062000357565b90915550506040518281526001600160a01b038216906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b600060208284031215620001c857600080fd5b81516001600160a01b0381168114620001e057600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200021257607f821691505b6020821081036200023357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001b057600081815260208120601f850160051c81016020861015620002625750805b601f850160051c820191505b8181101562000283578281556001016200026e565b505050505050565b81516001600160401b03811115620002a757620002a7620001e7565b620002bf81620002b88454620001fd565b8462000239565b602080601f831160018114620002f75760008415620002de5750858301515b600019600386901b1c1916600185901b17855562000283565b600085815260208120601f198616915b82811015620003285788860151825594840194600190910190840162000307565b5085821015620003475787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200037957634e487b7160e01b600052601160045260246000fd5b92915050565b6108c8806200038f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806370a082311161007157806370a082311461010d57806394bf804d1461013657806395d89b41146101495780639dc29fac14610151578063a9059cbb14610164578063dd62ed3e1461017757600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100e157806323b872dd146100f3578063313ce56714610106575b600080fd5b6100b661018a565b6040516100c391906106d4565b60405180910390f35b6100df6100da36600461073e565b61021c565b005b6000545b6040519081526020016100c3565b6100df610101366004610768565b61022b565b60126100e5565b6100e561011b3660046107a4565b6001600160a01b031660009081526002602052604090205490565b6100df6101443660046107c6565b6103e3565b6100b66104b7565b6100df61015f36600461073e565b6104c6565b6100df61017236600461073e565b610559565b6100e56101853660046107f2565b610646565b6060600480546101999061081c565b80601f01602080910402602001604051908101604052809291908181526020018280546101c59061081c565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b610227338383610673565b5050565b82818061024d836001600160a01b031660009081526002602052604090205490565b10156102955760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f75676820746f6b656e732160701b60448201526064015b60405180910390fd5b6001600160a01b03851660009081526003602090815260408083203384529091529020548311156102fb5760405162461bcd60e51b815260206004820152601060248201526f636865636b20616c6c6f77616e63652160801b604482015260640161028c565b6001600160a01b03851660009081526003602090815260408083203384529091528120805485929061032e90849061086c565b90915550506001600160a01b0385166000908152600260205260408120805485929061035b90849061086c565b90915550506001600160a01b0384166000908152600260205260408120805485929061038890849061087f565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516103d491815260200190565b60405180910390a35050505050565b6001546001600160a01b0316331461042d5760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420616e206f776e65722160981b604482015260640161028c565b6001600160a01b0381166000908152600260205260408120805484929061045590849061087f565b925050819055508160008082825461046d919061087f565b90915550506040518281526001600160a01b038216906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6060600580546101999061081c565b6001546001600160a01b031633146105105760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420616e206f776e65722160981b604482015260640161028c565b6001600160a01b0382166000908152600260205260408120805483929061053890849061086c565b9250508190555080600080828254610550919061086c565b90915550505050565b3360008181526002602052604090205482908111156105af5760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f75676820746f6b656e732160701b604482015260640161028c565b33600090815260026020526040812080548592906105ce90849061086c565b90915550506001600160a01b038416600090815260026020526040812080548592906105fb90849061087f565b90915550506040518381526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b6001600160a01b038083166000908152600360209081526040808320938516835292905220545b92915050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f6e11fb1b7f119e3f2fa29896ef5fdf8b8a2d0d4df6fe90ba8668e7d8b2ffa25e910160405180910390a3505050565b600060208083528351808285015260005b81811015610701578581018301518582016040015282016106e5565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461073957600080fd5b919050565b6000806040838503121561075157600080fd5b61075a83610722565b946020939093013593505050565b60008060006060848603121561077d57600080fd5b61078684610722565b925061079460208501610722565b9150604084013590509250925092565b6000602082840312156107b657600080fd5b6107bf82610722565b9392505050565b600080604083850312156107d957600080fd5b823591506107e960208401610722565b90509250929050565b6000806040838503121561080557600080fd5b61080e83610722565b91506107e960208401610722565b600181811c9082168061083057607f821691505b60208210810361085057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561066d5761066d610856565b8082018082111561066d5761066d61085656fea2646970667358221220b31e005935b8a498fa6e8cf8a1d4f93a39c242289dab1ad96e647d14f85a90aa64736f6c6343000812003300000000000000000000000008ea9eaf1e85bdbf1f8070630ee86ffc2b4b532f