6080604052620000126012600a62000b04565b6200002290633b9aca0062000b14565b600a81905562000034905f1962000b42565b62000041905f1962000b58565b600b556103e8600c819055600a5462000069919062000062906005620004a4565b9062000537565b600d556200007a6012600a62000b04565b6200008990623d090062000b14565b600e556200009a6012600a62000b04565b620000a990623d090062000b14565b600f556010805461010161ffff199091161790555f6011819055601281905560138190556014556018805464ff00ffffff60a81b19166201010160a81b179055348015620000f5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601880546001600160a01b03191633908117909155600b545f9182526001602090815260409283902091909155600a601b8190556014601c819055601d91909155601e556032601555815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a0155926004808401938290030181865afa158015620001c9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ef919062000b6e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000261919062000b6e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002ac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d2919062000b6e565b601780546001600160a01b03199081166001600160a01b039384161790915560168054909116918316919091179055600160045f6200030e3390565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526004909252812080548316600190811790915561dead82527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd805490931681179092556008906200038a3390565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560089093527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054851660019081179091556017549091168352818320805485168217905530835290822080549093168117909255600790620004173390565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff1995861617905530815260079092529020805490911660011790556200046361dead62000580565b600a5460405190815233905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35062000c28565b5f825f03620004b557505f62000531565b5f620004c2838562000b14565b905082620004d1858362000b96565b146200052e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200052e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200071460201b60201c565b5f546001600160a01b03163314620005db5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000525565b6001600160a01b0381165f9081526005602052604090205460ff1615620006555760405162461bcd60e51b815260206004820152602760248201527f4163636f756e7420697320616c7265616479206578636c756465642066726f6d604482015266081c995dd85c9960ca1b606482015260840162000525565b6001600160a01b0381165f9081526001602052604090205415620006af576001600160a01b0381165f9081526001602052604090205462000696906200074e565b6001600160a01b0382165f908152600260205260409020555b6001600160a01b03165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b5f8183620007375760405162461bcd60e51b815260040162000525919062000bac565b505f62000745848662000b96565b95945050505050565b5f600b54821115620007a35760405162461bcd60e51b815260206004820152601e60248201527f416d74206d757374206265206c657373207468616e20746f74207265666c0000604482015260640162000525565b5f620007ae620007c3565b9050620007bc838262000537565b9392505050565b5f8080620007d0620007e8565b9092509050620007e1828262000537565b9250505090565b600b54600a545f918291825b60065481101562000947578260015f6006848154811062000819576200081962000bf9565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411806200088557508160025f600684815481106200085f576200085f62000bf9565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156200089c57600b54600a54945094505050509091565b620008e560015f60068481548110620008b957620008b962000bf9565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205484906200097a565b92506200093060025f6006848154811062000904576200090462000bf9565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205483906200097a565b9150806200093e8162000c0d565b915050620007f4565b50600a54600b54620009599162000537565b8210156200097157600b54600a549350935050509091565b90939092509050565b5f6200052e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620009c360201b60201c565b5f8184841115620009e95760405162461bcd60e51b815260040162000525919062000bac565b505f62000745848662000b58565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111562000a4b57815f190482111562000a2f5762000a2f620009f7565b8085161562000a3d57918102915b93841c939080029062000a10565b509250929050565b5f8262000a635750600162000531565b8162000a7157505f62000531565b816001811462000a8a576002811462000a955762000ab5565b600191505062000531565b60ff84111562000aa95762000aa9620009f7565b50506001821b62000531565b5060208310610133831016604e8410600b841016171562000ada575081810a62000531565b62000ae6838362000a0b565b805f190482111562000afc5762000afc620009f7565b029392505050565b5f6200052e60ff84168362000a53565b8082028115828204841417620005315762000531620009f7565b634e487b7160e01b5f52601260045260245ffd5b5f8262000b535762000b5362000b2e565b500690565b81810381811115620005315762000531620009f7565b5f6020828403121562000b7f575f80fd5b81516001600160a01b03811681146200052e575f80fd5b5f8262000ba75762000ba762000b2e565b500490565b5f6020808352835180828501525f5b8181101562000bd95785810183015185820160400152820162000bbb565b505f604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b5f52603260045260245ffd5b5f6001820162000c215762000c21620009f7565b5060010190565b612e7e8062000c365f395ff3fe608060405260043610610374575f3560e01c80637c46160f116101c8578063b09f1266116100fd578063ea2f0b371161009d578063f872858a1161006d578063f872858a14610a98578063fb0ecfa414610ab6578063fb201b1d14610ad5578063fdd24dfe14610ae9575f80fd5b8063ea2f0b3714610a26578063f2fde38b14610a45578063f3e39c7c14610a64578063f52eb89c14610a83575f80fd5b8063d0dd0b32116100d8578063d0dd0b321461097c578063d12a76881461099b578063d28d8852146109b0578063dd62ed3e146109e2575f80fd5b8063b09f12661461090c578063b79550be1461093a578063c867d60b1461094e575f80fd5b80638da5cb5b11610168578063a364d86111610143578063a364d8611461089a578063a457c2d7146108b9578063a9059cbb146108d8578063af465a27146108f7575f80fd5b80638da5cb5b1461083457806395d89b41146108505780639d34a30d1461087b575f80fd5b806385261485116101a357806385261485146107965780638627479c146107af57806388f82020146107cf5780638b42507f14610806575f80fd5b80637c46160f1461074d5780637d1db4a51461076c578063807c2d9c14610781575f80fd5b806339509351116102a957806352390c02116102495780636ac9a870116102195780636ac9a870146106dc57806370a08231146106fb578063715018a61461071a578063728d41c91461072e575f80fd5b806352390c02146106525780635342acb4146106715780635804f1e4146106a85780635c85974f146106bd575f80fd5b80634549b039116102845780634549b039146105da57806347062402146105f95780634a74bb02146106135780635214329014610633575f80fd5b8063395093511461057d5780633bd5d1731461059c578063437823ec146105bb575f80fd5b806323b872dd116103145780632d838119116102ef5780632d83811914610505578063313ce567146105245780633685d4191461053f57806338ec0b111461055e575f80fd5b806323b872dd146104805780632b14ca561461049f5780632d6abf87146104ce575f80fd5b806313114a9d1161034f57806313114a9d1461041057806313ea1d891461042e57806318160ddd1461044d578063189d165e14610461575f80fd5b806306fdde031461037f578063095ea7b3146103c057806310b4bbbd146103ef575f80fd5b3661037b57005b5f80fd5b34801561038a575f80fd5b5060408051808201909152600781526642554c4c42544360c81b60208201525b6040516103b79190612a66565b60405180910390f35b3480156103cb575f80fd5b506103df6103da366004612aac565b610b09565b60405190151581526020016103b7565b3480156103fa575f80fd5b5061040e610409366004612aea565b610b1f565b005b34801561041b575f80fd5b506009545b6040519081526020016103b7565b348015610439575f80fd5b5061040e610448366004612b03565b610b53565b348015610458575f80fd5b50600a54610420565b34801561046c575f80fd5b5061040e61047b366004612b36565b610baf565b34801561048b575f80fd5b506103df61049a366004612b4d565b610bca565b3480156104aa575f80fd5b50601d54601e546104b9919082565b604080519283526020830191909152016103b7565b3480156104d9575f80fd5b506016546104ed906001600160a01b031681565b6040516001600160a01b0390911681526020016103b7565b348015610510575f80fd5b5061042061051f366004612b36565b610c31565b34801561052f575f80fd5b50604051601281526020016103b7565b34801561054a575f80fd5b5061040e610559366004612b8b565b610ca0565b348015610569575f80fd5b5061040e610578366004612b03565b610e41565b348015610588575f80fd5b506103df610597366004612aac565b610e94565b3480156105a7575f80fd5b5061040e6105b6366004612b36565b610ec9565b3480156105c6575f80fd5b5061040e6105d5366004612b8b565b610faf565b3480156105e5575f80fd5b506104206105f4366004612ba6565b610ffb565b348015610604575f80fd5b50601b54601c546104b9919082565b34801561061e575f80fd5b506018546103df90600160a81b900460ff1681565b34801561063e575f80fd5b506017546104ed906001600160a01b031681565b34801561065d575f80fd5b5061040e61066c366004612b8b565b611085565b34801561067c575f80fd5b506103df61068b366004612b8b565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156106b3575f80fd5b5061042060195481565b3480156106c8575f80fd5b5061040e6106d7366004612b36565b6111e2565b3480156106e7575f80fd5b5061040e6106f6366004612bc7565b611210565b348015610706575f80fd5b50610420610715366004612b8b565b611244565b348015610725575f80fd5b5061040e6112a0565b348015610739575f80fd5b5061040e610748366004612b36565b611311565b348015610758575f80fd5b5061040e610767366004612be7565b61133f565b348015610777575f80fd5b50610420600e5481565b34801561078c575f80fd5b50610420600f5481565b3480156107a1575f80fd5b506010546103df9060ff1681565b3480156107ba575f80fd5b506018546103df90600160b81b900460ff1681565b3480156107da575f80fd5b506103df6107e9366004612b8b565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610811575f80fd5b506103df610820366004612b8b565b60076020525f908152604090205460ff1681565b34801561083f575f80fd5b505f546001600160a01b03166104ed565b34801561085b575f80fd5b5060408051808201909152600381526242544360e81b60208201526103aa565b348015610886575f80fd5b5061040e610895366004612b4d565b61138e565b3480156108a5575f80fd5b5061040e6108b4366004612aea565b61149a565b3480156108c4575f80fd5b506103df6108d3366004612aac565b6114ce565b3480156108e3575f80fd5b506103df6108f2366004612aac565b61151b565b348015610902575f80fd5b50610420600a5481565b348015610917575f80fd5b506103aa6040518060400160405280600381526020016242544360e81b81525081565b348015610945575f80fd5b5061040e611527565b348015610959575f80fd5b506103df610968366004612b8b565b60086020525f908152604090205460ff1681565b348015610987575f80fd5b5061040e610996366004612b8b565b611591565b3480156109a6575f80fd5b50610420600d5481565b3480156109bb575f80fd5b506103aa6040518060400160405280600781526020016642554c4c42544360c81b81525081565b3480156109ed575f80fd5b506104206109fc366004612c20565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610a31575f80fd5b5061040e610a40366004612b8b565b6115dc565b348015610a50575f80fd5b5061040e610a5f366004612b8b565b611625565b348015610a6f575f80fd5b5061040e610a7e366004612c57565b61170c565b348015610a8e575f80fd5b50610420601a5481565b348015610aa3575f80fd5b506010546103df90610100900460ff1681565b348015610ac1575f80fd5b5061040e610ad0366004612bc7565b61175b565b348015610ae0575f80fd5b5061040e61178f565b348015610af4575f80fd5b506018546103df90600160b01b900460ff1681565b5f610b15338484611842565b5060015b92915050565b6018546001600160a01b03163314610b35575f80fd5b60188054911515600160b81b0260ff60b81b19909216919091179055565b5f546001600160a01b03163314610b855760405162461bcd60e51b8152600401610b7c90612c71565b60405180910390fd5b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b6018546001600160a01b03163314610bc5575f80fd5b601555565b5f610bd684848461194e565b610c278433610c2285604051806060016040528060288152602001612dfc602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190611c87565b611842565b5060019392505050565b5f600b54821115610c845760405162461bcd60e51b815260206004820152601e60248201527f416d74206d757374206265206c657373207468616e20746f74207265666c00006044820152606401610b7c565b5f610c8d611cbf565b9050610c998382611ce0565b9392505050565b5f546001600160a01b03163314610cc95760405162461bcd60e51b8152600401610b7c90612c71565b6001600160a01b0381165f9081526005602052604090205460ff16610d235760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48195e18db1d59195960821b6044820152606401610b7c565b5f5b600654811015610e3d57816001600160a01b031660068281548110610d4c57610d4c612ca6565b5f918252602090912001546001600160a01b031603610e2b5760068054610d7590600190612cce565b81548110610d8557610d85612ca6565b5f91825260209091200154600680546001600160a01b039092169183908110610db057610db0612ca6565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610e0757610e07612ce1565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b80610e3581612cf5565b915050610d25565b5050565b5f546001600160a01b03163314610e6a5760405162461bcd60e51b8152600401610b7c90612c71565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b335f8181526003602090815260408083206001600160a01b03871684529091528120549091610b15918590610c229086611d21565b335f8181526005602052604090205460ff1615610f3d5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610b7c565b5f610f4783611d7f565b505050506001600160a01b0384165f90815260016020526040902054919250610f7291905082611dc7565b6001600160a01b0383165f90815260016020526040902055600b54610f979082611dc7565b600b55600954610fa79084611d21565b600955505050565b5f546001600160a01b03163314610fd85760405162461bcd60e51b8152600401610b7c90612c71565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f600a5483111561104e5760405162461bcd60e51b815260206004820152601c60248201527f416d74206d757374206265206c657373207468616e20737570706c79000000006044820152606401610b7c565b8161106c575f61105d84611d7f565b50939550610b19945050505050565b5f61107684611d7f565b50929550610b19945050505050565b5f546001600160a01b031633146110ae5760405162461bcd60e51b8152600401610b7c90612c71565b6001600160a01b0381165f9081526005602052604090205460ff16156111265760405162461bcd60e51b815260206004820152602760248201527f4163636f756e7420697320616c7265616479206578636c756465642066726f6d604482015266081c995dd85c9960ca1b6064820152608401610b7c565b6001600160a01b0381165f908152600160205260409020541561117d576001600160a01b0381165f9081526001602052604090205461116490610c31565b6001600160a01b0382165f908152600260205260409020555b6001600160a01b03165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b5f546001600160a01b0316331461120b5760405162461bcd60e51b8152600401610b7c90612c71565b600e55565b5f546001600160a01b031633146112395760405162461bcd60e51b8152600401610b7c90612c71565b601d91909155601e55565b6001600160a01b0381165f9081526005602052604081205460ff161561127f57506001600160a01b03165f9081526002602052604090205490565b6001600160a01b0382165f90815260016020526040902054610b1990610c31565b5f546001600160a01b031633146112c95760405162461bcd60e51b8152600401610b7c90612c71565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461133a5760405162461bcd60e51b8152600401610b7c90612c71565b600f55565b6018546001600160a01b03163314611355575f80fd5b60188054921515600160b01b0260ff60b01b19941515600160a81b029490941661ffff60a81b1990931692909217929092179055600d55565b6018546001600160a01b031633146113a4575f80fd5b306001600160a01b038416036113c4576113bf308383611e08565b505050565b6040516001600160a01b038381166024830152604482018390525f919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b1790525161141c9190612d0d565b5f604051808303815f865af19150503d805f8114611455576040519150601f19603f3d011682016040523d82523d5f602084013e61145a565b606091505b50509050806114945760405162461bcd60e51b815260206004820152600660248201526511985a5b195960d21b6044820152606401610b7c565b50505050565b6018546001600160a01b031633146114b0575f80fd5b60188054911515600160c81b0260ff60c81b19909216919091179055565b5f610b153384610c2285604051806060016040528060258152602001612e2460259139335f9081526003602090815260408083206001600160a01b038d1684529091529020549190611c87565b5f610b1533848461194e565b6018546001600160a01b0316331461153d575f80fd5b6040515f90339047908381818185875af1925050503d805f811461157c576040519150601f19603f3d011682016040523d82523d5f602084013e611581565b606091505b505090508061158e575f80fd5b50565b5f546001600160a01b031633146115ba5760405162461bcd60e51b8152600401610b7c90612c71565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146116055760405162461bcd60e51b8152600401610b7c90612c71565b6001600160a01b03165f908152600460205260409020805460ff19169055565b5f546001600160a01b0316331461164e5760405162461bcd60e51b8152600401610b7c90612c71565b6001600160a01b0381166116b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b7c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146117355760405162461bcd60e51b8152600401610b7c90612c71565b601080549215156101000261ff00199215159290921661ffff1990931692909217179055565b5f546001600160a01b031633146117845760405162461bcd60e51b8152600401610b7c90612c71565b601b91909155601c55565b5f546001600160a01b031633146117b85760405162461bcd60e51b8152600401610b7c90612c71565b601854600160c01b900460ff16156118055760405162461bcd60e51b815260206004820152601060248201526f416c726561647920456e61626c65642160801b6044820152606401610b7c565b6018805460ff60c01b1916600160c01b17905542601981905561182a9061a8c0612d28565b601a556018805460ff60c81b1916600160c81b179055565b6001600160a01b0383166118985760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f20616464726573736044820152606401610b7c565b6001600160a01b0382166118ee5760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f206164647265737300006044820152606401610b7c565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611960575f80fd5b6001600160a01b038216611972575f80fd5b5f811161197d575f80fd5b601854600160c01b900460ff16611a08576001600160a01b0383165f9081526004602052604090205460ff16806119cb57506001600160a01b0382165f9081526004602052604090205460ff165b611a085760405162461bcd60e51b815260206004820152600e60248201526d151c98591a5b99c814185d5cd95960921b6044820152606401610b7c565b601a5442118015611a225750601854600160c81b900460ff165b15611a9e575f611a4a600c54611a446064600e54611f8e90919063ffffffff16565b90611ce0565b90505f611a69600c54611a446064600f54611f8e90919063ffffffff16565b600e54909150611a799083611d21565b600e55600f54611a899082611d21565b600f55611a984261a8c0612d28565b601a5550505b6001600160a01b0383165f9081526007602052604090205460ff16158015611ade57506001600160a01b0382165f9081526007602052604090205460ff16155b8015611aec575060105460ff165b15611b3457600e54811115611b345760405162461bcd60e51b815260206004820152600e60248201526d08af0c6cacac8e640dac2f040a8f60931b6044820152606401610b7c565b601054610100900460ff168015611b6357506001600160a01b0382165f9081526008602052604090205460ff16155b15611bc457600f54611b7e82611b7885611244565b90611d21565b1115611bc45760405162461bcd60e51b815260206004820152601560248201527422bc31b2b2b239902bb0b63632ba102634b6b4ba1760591b6044820152606401610b7c565b5f611bce30611244565b600d5460185491925082101590600160a01b900460ff16158015611bff57506017546001600160a01b038581169116145b8015611c145750601854600160a81b900460ff165b8015611c1d5750805b15611c2b57611c2b8261200c565b6001600160a01b0385165f9081526004602052604090205460019060ff1680611c6b57506001600160a01b0385165f9081526004602052604090205460ff165b15611c7357505f5b611c7f868686846120a0565b505050505050565b5f8184841115611caa5760405162461bcd60e51b8152600401610b7c9190612a66565b505f611cb68486612cce565b95945050505050565b5f805f611cca612281565b9092509050611cd98282611ce0565b9250505090565b5f610c9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123fa565b5f80611d2d8385612d28565b905083811015610c995760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b7c565b5f805f805f805f805f611d918a612426565b9250925092505f805f611dad8d8686611da8611cbf565b612464565b919f909e50909c50959a5093985091965092945050505050565b5f610c9983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c87565b5f611e11611cbf565b90505f611e1e8383611f8e565b6001600160a01b0386165f90815260016020526040902054909150611e439082611dc7565b6001600160a01b038087165f908152600160205260408082209390935590861681522054611e719082611d21565b6001600160a01b038086165f9081526001602090815260408083209490945591881681526005909152205460ff1615611edf576001600160a01b0385165f90815260026020526040902054611ec69084611dc7565b6001600160a01b0386165f908152600260205260409020555b6001600160a01b0384165f9081526005602052604090205460ff1615611f3a576001600160a01b0384165f90815260026020526040902054611f219084611d21565b6001600160a01b0385165f908152600260205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f7f91815260200190565b60405180910390a35050505050565b5f825f03611f9d57505f610b19565b5f611fa88385612d3b565b905082611fb58583612d52565b14610c995760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b7c565b6018805460ff60a01b1916600160a01b1790819055600160b01b900460ff16156120355750600d545b5f612051600c54611a4460155485611f8e90919063ffffffff16565b905061205d8282611dc7565b91508015612072576120723061dead83611e08565b811561208f5760185461208f9083906001600160a01b03166124b0565b50506018805460ff60a01b19169055565b6120a8612601565b801561211f576017546001600160a01b03908116908516036120d5576120d5601b54601155601c54601355565b6017546001600160a01b039081169084160361211f576019546120fb9062054600612d28565b421161210e5761210961263c565b61211f565b61211f601d54601155601e54601355565b6001600160a01b0384165f9081526005602052604090205460ff16801561215e57506001600160a01b0383165f9081526005602052604090205460ff16155b156121735761216e8484846126ad565b61226b565b6001600160a01b0384165f9081526005602052604090205460ff161580156121b257506001600160a01b0383165f9081526005602052604090205460ff165b156121c25761216e8484846127cd565b6001600160a01b0384165f9081526005602052604090205460ff1615801561220257506001600160a01b0383165f9081526005602052604090205460ff16155b156122125761216e848484612870565b6001600160a01b0384165f9081526005602052604090205460ff16801561225057506001600160a01b0383165f9081526005602052604090205460ff165b156122605761216e8484846128b0565b61226b848484612870565b8061149457611494601254601155601454601355565b600b54600a545f918291825b6006548110156123ca578260015f600684815481106122ae576122ae612ca6565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061231657508160025f600684815481106122f0576122f0612ca6565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b1561232c57600b54600a54945094505050509091565b61237060015f6006848154811061234557612345612ca6565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548490611dc7565b92506123b660025f6006848154811061238b5761238b612ca6565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548390611dc7565b9150806123c281612cf5565b91505061228d565b50600a54600b546123da91611ce0565b8210156123f157600b54600a549350935050509091565b90939092509050565b5f818361241a5760405162461bcd60e51b8152600401610b7c9190612a66565b505f611cb68486612d52565b5f805f806124338561291e565b90505f61243f8661293a565b90505f612456826124508986611dc7565b90611dc7565b979296509094509092505050565b5f8080806124728886611f8e565b90505f61247f8887611f8e565b90505f61248c8888611f8e565b90505f61249d826124508686611dc7565b939b939a50919850919650505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106124e3576124e3612ca6565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561253a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061255e9190612d71565b8160018151811061257157612571612ca6565b6001600160a01b0392831660209182029290920101526016546125979130911685611842565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906125cf9086905f90869088904290600401612d8c565b5f604051808303815f87803b1580156125e6575f80fd5b505af11580156125f8573d5f803e3d5ffd5b50505050505050565b5f612619601354601154611d2190919063ffffffff16565b9050805f036126255750565b5060118054601255601380546014555f9182905555565b5f6019544261264b9190612cce565b9050620151808110156126665760146011556101e060135550565b6202a30081101561267e57601460115560e660135550565b6203f480811015612696576014601155605060135550565b62054600811161158e57600a601155601460135550565b5f805f805f806126bc87611d7f565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506126ed9088611dc7565b6001600160a01b038a165f9081526002602090815260408083209390935560019052205461271b9087611dc7565b6001600160a01b03808b165f9081526001602052604080822093909355908a16815220546127499086611d21565b6001600160a01b0389165f9081526001602052604090205561276b8982612956565b6127758483612a20565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127ba91815260200190565b60405180910390a3505050505050505050565b5f805f805f806127dc87611d7f565b6001600160a01b038f165f90815260016020526040902054959b5093995091975095509350915061280d9087611dc7565b6001600160a01b03808b165f90815260016020908152604080832094909455918b168152600290915220546128429084611d21565b6001600160a01b0389165f908152600260209081526040808320939093556001905220546127499086611d21565b5f805f805f8061287f87611d7f565b6001600160a01b038f165f90815260016020526040902054959b5093995091975095509350915061271b9087611dc7565b5f805f805f806128bf87611d7f565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506128f09088611dc7565b6001600160a01b038a165f9081526002602090815260408083209390935560019052205461280d9087611dc7565b5f610b19600c54611a4460115485611f8e90919063ffffffff16565b5f610b19600c54611a4460135485611f8e90919063ffffffff16565b5f61295f611cbf565b90505f61296c8383611f8e565b305f908152600160205260409020549091506129889082611d21565b305f9081526001602090815260408083209390935560059052205460ff16156129d457305f908152600260205260409020546129c49084611d21565b305f908152600260205260409020555b82156114945760405183815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b600b54612a2d9083611dc7565b600b55600954612a3d9082611d21565b6009555050565b5f5b83811015612a5e578181015183820152602001612a46565b50505f910152565b602081525f8251806020840152612a84816040850160208701612a44565b601f01601f19169190910160400192915050565b6001600160a01b038116811461158e575f80fd5b5f8060408385031215612abd575f80fd5b8235612ac881612a98565b946020939093013593505050565b80358015158114612ae5575f80fd5b919050565b5f60208284031215612afa575f80fd5b610c9982612ad6565b5f8060408385031215612b14575f80fd5b8235612b1f81612a98565b9150612b2d60208401612ad6565b90509250929050565b5f60208284031215612b46575f80fd5b5035919050565b5f805f60608486031215612b5f575f80fd5b8335612b6a81612a98565b92506020840135612b7a81612a98565b929592945050506040919091013590565b5f60208284031215612b9b575f80fd5b8135610c9981612a98565b5f8060408385031215612bb7575f80fd5b82359150612b2d60208401612ad6565b5f8060408385031215612bd8575f80fd5b50508035926020909101359150565b5f805f60608486031215612bf9575f80fd5b612c0284612ad6565b9250612c1060208501612ad6565b9150604084013590509250925092565b5f8060408385031215612c31575f80fd5b8235612c3c81612a98565b91506020830135612c4c81612a98565b809150509250929050565b5f8060408385031215612c68575f80fd5b612b1f83612ad6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610b1957610b19612cba565b634e487b7160e01b5f52603160045260245ffd5b5f60018201612d0657612d06612cba565b5060010190565b5f8251612d1e818460208701612a44565b9190910192915050565b80820180821115610b1957610b19612cba565b8082028115828204841417610b1957610b19612cba565b5f82612d6c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612d81575f80fd5b8151610c9981612a98565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612dda5784516001600160a01b031683529383019391830191600101612db5565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220aebd22fb6076534592af53ed1aa904c623cf0e81ca3c55082886c227f6e68c2f64736f6c63430008150033