0x60806040526004361015610011575f80fd5b5f3560e01c806307b18bde1461008057806333bb7f911461007b578063715018a6146100765780638da5cb5b14610071578063d9caed121461006c578063e9196504146100675763f2fde38b036100a6576101fa565b6101e2565b6101c9565b61015a565b610142565b610125565b6100ef565b6001600160a01b031690565b90565b6001600160a01b0381165b036100a657565b5f80fd5b905035906100b782610094565b565b8061009f565b905035906100b7826100b9565b91906040838203126100a657610091906100e681856100aa565b936020016100bf565b346100a6576101086101023660046100cc565b906103a8565b604051005b0390f35b906020828203126100a657610091916100aa565b610108610133366004610111565b61047f565b5f9103126100a657565b346100a657610152366004610138565b6101086104a4565b346100a65761016a366004610138565b61010d61017e5f546001600160a01b031690565b6040515b918291826001600160a01b03909116815260200190565b90916060828403126100a6576100916101b284846100aa565b936101c081602086016100aa565b936040016100bf565b346100a6576101086101dc366004610199565b9161059e565b346100a6576101086101f5366004610111565b61063d565b346100a65761010861020d366004610111565b6106a3565b1561021957565b60405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220726566756e646572006044820152606490fd5b0390fd5b6100b791906102a1335b806102926102856100856001546001600160a01b031690565b916001600160a01b031690565b149081156102a6575b50610212565b610333565b90506102bf6102856100855f546001600160a01b031690565b145f61029b565b610085610091610091926001600160a01b031690565b610091906102c6565b610091906102dc565b6040513d5f823e3d90fd5b6100856100916100919290565b610091906102f9565b6001600160a01b039182168152911660208201526060810192916100b79160400152565b905f808080610349610344876102e5565b6102e5565b859082821561039f575bf11561039a576103625f610306565b6040517eed5939179dc194223f0edd1517ecee2210b22da7f82c8e4b1795e93b9f06aa9392610395915b9384938461030f565b0390a1565b6102ee565b506108fc610353565b906100b791610262565b156103b957565b60405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f7420726566756e646572000000000000000000006044820152606490fd5b6100b790610425335b61041f6102856100856001546001600160a01b031690565b146103b2565b610447565b6001600160a01b0390911681526040810192916100b79160200152565b347fa2869907a66db2fdc44a071200786a24ac8e86f11adf2e1e3286dd2fedcea3719161039561047660405190565b9283928361042a565b6100b7906103fe565b6104906106ac565b6100b76100b761049f5f610306565b6106e2565b6100b7610488565b6100b79291906104bb3361026c565b6104fb565b634e487b7160e01b5f52604160045260245ffd5b90601f01601f1916810190811067ffffffffffffffff8211176104f657604052565b6104c0565b91909161050a610344826102e5565b63a9059cbb848492803b156100a6576105385f809461054361052b60405190565b9788968795869460e01b90565b84526004840161042a565b03925af1801561039a57610581575b506040517eed5939179dc194223f0edd1517ecee2210b22da7f82c8e4b1795e93b9f06aa93926103959161038c565b610598905f61059081836104d4565b810190610138565b5f610552565b906100b792916104ac565b6100b7906105b633610407565b6105f8565b906105cb6100916105f4926102e5565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03919091161790565b9055565b6106039060016105bb565b6001546001600160a01b03166103957fcfc45623f4b489da787d068ad7550080ef6d5070a88d1f5410e9ab66eb26c9639161018260405190565b6100b7906105a9565b6100b7906106526106ac565b806106626102856100855f610306565b14610670576100b7906106e2565b61025e61067c5f610306565b604051631e4fbdf760e01b8152918291600483016001600160a01b03909116815260200190565b6100b790610646565b5f546001600160a01b03166106c361028533610085565b036106ca57565b60405163118cdaa760e01b8152336004820152602490fd5b5f546001600160a01b03166106f7825f6105bb565b9061072b6107257f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0936102e5565b916102e5565b9161073560405190565b5f90a356fea26469706673582212205bf97ba45ad8710f56ecdc95d4a7860e65ca9526d064f654bf359e2ff0a6895764736f6c63430008190033
0x60806040523461002b5761001a6100146100cf565b90610147565b604051610770610242823961077090f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b90601f01601f191681019081106001600160401b0382111761006457604052565b61002f565b9061007d61007660405190565b9283610043565b565b6001600160a01b031690565b90565b6001600160a01b0381160361002b57565b9050519061007d8261008e565b919060408382031261002b5761008b906100c6818561009f565b9360200161009f565b6100ed6109b2803803806100e281610069565b9283398101906100ac565b9091565b61008b9061007f906001600160a01b031682565b61008b906100f1565b61008b90610105565b9061012761008b6101439261010e565b82546001600160a01b0319166001600160a01b03919091161790565b9055565b9061015461007d92610184565b6001610117565b61007f61008b61008b9290565b61008b9061015b565b6001600160a01b03909116815260200190565b806101a161019461007f5f610168565b916001600160a01b031690565b146101af5761007d906101eb565b6101d46101bb5f610168565b604051631e4fbdf760e01b815291829160048301610171565b0390fd5b61008b9061007f565b61008b90546101d8565b6101f45f6101e1565b6101fe825f610117565b9061023261022c7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09361010e565b9161010e565b9161023c60405190565b5f90a356fe60806040526004361015610011575f80fd5b5f3560e01c806307b18bde1461008057806333bb7f911461007b578063715018a6146100765780638da5cb5b14610071578063d9caed121461006c578063e9196504146100675763f2fde38b036100a6576101fa565b6101e2565b6101c9565b61015a565b610142565b610125565b6100ef565b6001600160a01b031690565b90565b6001600160a01b0381165b036100a657565b5f80fd5b905035906100b782610094565b565b8061009f565b905035906100b7826100b9565b91906040838203126100a657610091906100e681856100aa565b936020016100bf565b346100a6576101086101023660046100cc565b906103a8565b604051005b0390f35b906020828203126100a657610091916100aa565b610108610133366004610111565b61047f565b5f9103126100a657565b346100a657610152366004610138565b6101086104a4565b346100a65761016a366004610138565b61010d61017e5f546001600160a01b031690565b6040515b918291826001600160a01b03909116815260200190565b90916060828403126100a6576100916101b284846100aa565b936101c081602086016100aa565b936040016100bf565b346100a6576101086101dc366004610199565b9161059e565b346100a6576101086101f5366004610111565b61063d565b346100a65761010861020d366004610111565b6106a3565b1561021957565b60405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220726566756e646572006044820152606490fd5b0390fd5b6100b791906102a1335b806102926102856100856001546001600160a01b031690565b916001600160a01b031690565b149081156102a6575b50610212565b610333565b90506102bf6102856100855f546001600160a01b031690565b145f61029b565b610085610091610091926001600160a01b031690565b610091906102c6565b610091906102dc565b6040513d5f823e3d90fd5b6100856100916100919290565b610091906102f9565b6001600160a01b039182168152911660208201526060810192916100b79160400152565b905f808080610349610344876102e5565b6102e5565b859082821561039f575bf11561039a576103625f610306565b6040517eed5939179dc194223f0edd1517ecee2210b22da7f82c8e4b1795e93b9f06aa9392610395915b9384938461030f565b0390a1565b6102ee565b506108fc610353565b906100b791610262565b156103b957565b60405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f7420726566756e646572000000000000000000006044820152606490fd5b6100b790610425335b61041f6102856100856001546001600160a01b031690565b146103b2565b610447565b6001600160a01b0390911681526040810192916100b79160200152565b347fa2869907a66db2fdc44a071200786a24ac8e86f11adf2e1e3286dd2fedcea3719161039561047660405190565b9283928361042a565b6100b7906103fe565b6104906106ac565b6100b76100b761049f5f610306565b6106e2565b6100b7610488565b6100b79291906104bb3361026c565b6104fb565b634e487b7160e01b5f52604160045260245ffd5b90601f01601f1916810190811067ffffffffffffffff8211176104f657604052565b6104c0565b91909161050a610344826102e5565b63a9059cbb848492803b156100a6576105385f809461054361052b60405190565b9788968795869460e01b90565b84526004840161042a565b03925af1801561039a57610581575b506040517eed5939179dc194223f0edd1517ecee2210b22da7f82c8e4b1795e93b9f06aa93926103959161038c565b610598905f61059081836104d4565b810190610138565b5f610552565b906100b792916104ac565b6100b7906105b633610407565b6105f8565b906105cb6100916105f4926102e5565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03919091161790565b9055565b6106039060016105bb565b6001546001600160a01b03166103957fcfc45623f4b489da787d068ad7550080ef6d5070a88d1f5410e9ab66eb26c9639161018260405190565b6100b7906105a9565b6100b7906106526106ac565b806106626102856100855f610306565b14610670576100b7906106e2565b61025e61067c5f610306565b604051631e4fbdf760e01b8152918291600483016001600160a01b03909116815260200190565b6100b790610646565b5f546001600160a01b03166106c361028533610085565b036106ca57565b60405163118cdaa760e01b8152336004820152602490fd5b5f546001600160a01b03166106f7825f6105bb565b9061072b6107257f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0936102e5565b916102e5565b9161073560405190565b5f90a356fea26469706673582212205bf97ba45ad8710f56ecdc95d4a7860e65ca9526d064f654bf359e2ff0a6895764736f6c6343000819003300000000000000000000000078e9e6c43f8916ac59d8ad7f1dec442b9396e6ef000000000000000000000000148acd3cd4d6a17cd2abbecd0745b09b62c64f84