0x6080806040523461001657610ec3908161001c8239f35b600080fdfe60806040526004361015610013575b600080fd5b60003560e01c80635c975abb1461011757806370d5ae051461010e578063715018a61461010557806371ca337d146100fc5780637641e6f3146100f35780638456cb59146100ea5780638da5cb5b146100e157806394b918de146100d857806397c3797b146100cf578063b2237ba3146100c6578063cf756fdf146100bd578063f2fde38b146100b45763f7b188a5146100ac57600080fd5b61000e610705565b5061000e61065d565b5061000e610551565b5061000e61052f565b5061000e61045d565b5061000e610395565b5061000e61036d565b5061000e610312565b5061000e610299565b5061000e6101d3565b5061000e610163565b5061000e61013b565b503461000e57600060031936011261000e57602060ff606554166040519015158152f35b503461000e57600060031936011261000e5760206001600160a01b0360995416604051908152f35b503461000e576000806003193601126101d05761017e6107a2565b60335473ffffffffffffffffffffffffffffffffffffffff198116603355816001600160a01b0360405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08284a3f35b80fd5b503461000e57600060031936011261000e576020609a54604051908152f35b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761023e57604052565b6102466101f2565b604052565b90601f601f19910116810190811067ffffffffffffffff82111761023e57604052565b601f19601f60209267ffffffffffffffff811161028c575b01160190565b6102946101f2565b610286565b503461000e57604060031936011261000e5760243567ffffffffffffffff811161000e573660238201121561000e5780600401356102d68161026e565b906102e4604051928361024b565b808252366024828501011161000e57602081600092602461031096018386013783010152600435610e1d565b005b503461000e57600060031936011261000e5761032c6107a2565b610334610ad6565b600160ff1960655416176065557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b503461000e57600060031936011261000e5760206001600160a01b0360335416604051908152f35b503461000e57602060031936011261000e576004356103b2610ad6565b6001600160a01b036103d08282609754168360995416903390610b80565b60985416609a5491807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118115151661041d5761031092670de0b6b3a7640000910204903390610b26565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001600160a01b0381160361000e57565b503461000e57606060031936011261000e576001600160a01b0360206104eb6004356104888161044c565b6044356104948161044c565b61049c6107a2565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024803590820152938492839160009183906044820190565b0393165af18015610523576104fc57005b6103109060203d811161051c575b610514818361024b565b810190610bfc565b503d61050a565b6040513d6000823e3d90fd5b503461000e57602060031936011261000e576105496107a2565b600435609a55005b503461000e57608060031936011261000e5760043561056f8161044c565b6105d16024359161057f8361044c565b60443561058b8161044c565b600054936105b060ff8660081c16158096819761064f575b811561062f575b50610851565b846105c3600160ff196000541617600055565b610616575b606435926108c2565b6105d757005b6105e761ff001960005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61062a61010061ff00196000541617600055565b6105c8565b303b15915081610641575b50386105aa565b6001915060ff16143861063a565b600160ff82161091506105a3565b503461000e57602060031936011261000e5760043561067b8161044c565b6106836107a2565b6001600160a01b0381161561069b57610310906107fa565b608460405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b503461000e57600060031936011261000e5761071f6107a2565b60655460ff81161561075e5760ff19166065557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b606460405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152fd5b6001600160a01b036033541633036107b657565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b603354906001600160a01b03809116918273ffffffffffffffffffffffffffffffffffffffff19821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e06000604051a3565b1561085857565b608460405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b92916001600160a01b03808516151590816109f7575b816109eb575b50156109a75761096f6109989261094661099d9661090c60ff60005460081c1661090781610a03565b610a03565b610915336107fa565b61091d610a74565b6001600160a01b031673ffffffffffffffffffffffffffffffffffffffff196097541617609755565b6001600160a01b031673ffffffffffffffffffffffffffffffffffffffff196098541617609855565b6001600160a01b031673ffffffffffffffffffffffffffffffffffffffff196099541617609955565b609a55565b6109a5610a95565b565b606460405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006044820152fd5b905081161515386108de565b838116151591506108d8565b15610a0a57565b608460405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b610a8960ff60005460081c1661090781610a03565b60ff1960655416606555565b610a9d610ad6565b600160ff1960655416176065557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1565b60ff60655416610ae257565b606460405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152fd5b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000060208201526001600160a01b039290921660248301526044808301939093529181526109a591610b7b60648361024b565b610c14565b90926109a593604051937f23b872dd0000000000000000000000000000000000000000000000000000000060208601526001600160a01b03809216602486015216604484015260648301526064825260a0820182811067ffffffffffffffff821117610bef575b604052610c14565b610bf76101f2565b610be7565b9081602091031261000e5751801515810361000e5790565b604051610c91916001600160a01b0316610c2d82610222565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af13d15610d2c573d91610c758361026e565b92610c83604051948561024b565b83523d60008785013e610d30565b805190828215928315610d14575b50505015610caa5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b610d249350820181019101610bfc565b388281610c9f565b6060915b91929015610d915750815115610d44575090565b3b15610d4d5790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b825190915015610da45750805190602001fd5b610dc89060405191829162461bcd60e51b8352602060048401526024830190610dcc565b0390fd5b91908251928382526000905b848210610e055750601f8460209495601f199311610df8575b0116010190565b6000858286010152610df1565b90602090818082850101519082860101520190610dd8565b907f0bd10d08cdd688ae27d8149d34aea2ddb78c6e0116355640cf1af79a2c9ab39491610e48610ad6565b610e66816001600160a01b0380609754169060995416903390610b80565b610e886040519283923384526020840152606060408401526060830190610dcc565b0390a156fea2646970667358221220ac2412d1f51c94991adc417a762e1ed1273e9acca365f2e6ed985a624f31601464736f6c634300080d0033