0x608060405234801562000010575f80fd5b50604051620021b5380380620021b583398101604081905262000033916200014a565b6040518060400160405280600f81526020016e2234bb34b232b72faa3930b1b5b2b960891b8152506040518060400160405280601081526020016f2234bb34b232b7322faa3930b1b5b2b960811b815250838282816003908162000098919062000221565b506004620000a7828262000221565b505050620000c4620000be620000f560201b60201c565b620000f9565b600680546001600160a01b0319166001600160a01b03929092169190911790555050606460125560135550620002ed565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f80604083850312156200015c575f80fd5b82516001600160a01b038116811462000173575f80fd5b6020939093015192949293505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620001ac57607f821691505b602082108103620001cb57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200021c57805f5260205f20601f840160051c81016020851015620001f85750805b601f840160051c820191505b8181101562000219575f815560010162000204565b50505b505050565b81516001600160401b038111156200023d576200023d62000183565b62000255816200024e845462000197565b84620001d1565b602080601f8311600181146200028b575f8415620002735750858301515b5f19600386901b1c1916600185901b178555620002e5565b5f85815260208120601f198616915b82811015620002bb578886015182559484019460019091019084016200029a565b5085821015620002d957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b611eba80620002fb5f395ff3fe608060405234801561000f575f80fd5b506004361061026b575f3560e01c806385a6b3ae1161014b578063ba72a955116100bf578063e30443bc11610084578063e30443bc146105e4578063e7841ec0146105f7578063e98030c7146105ff578063f2fde38b14610612578063fbcbc0f114610625578063ffb2c47914610638575f80fd5b8063ba72a95514610552578063bc4c4b3714610565578063be10b61414610578578063c705c56914610581578063dd62ed3e146105ac575f80fd5b8063a3395cb411610110578063a3395cb4146104de578063a457c2d7146104f1578063a8b9d24014610504578063a9059cbb14610517578063aafd847a1461052a578063b1181e55146102c5575f80fd5b806385a6b3ae146104965780638da5cb5b1461049f57806391b89fba146104b057806395d89b41146104c357806399248ea7146104cb575f80fd5b8063313ce567116101e2578063556cafb0116101a7578063556cafb01461041a5780635ebf4db9146104425780636a474002146104555780636f2789ec1461045d57806370a0823114610466578063715018a61461048e575f80fd5b8063313ce5671461036b57806331e79db01461037a578063395093511461038d5780634e7b827f146103a05780635183d6fd146103c2575f80fd5b80631105e740116102335780631105e7401461030257806318160ddd14610315578063226cfa3d1461031d57806323b872dd1461033c57806327ce01471461034f5780633009a60914610362575f80fd5b806306fdde031461026f5780630716c6111461028d578063095ea7b3146102a257806309bbedde146102c557806310a8c46b146102d7575b5f80fd5b610277610666565b6040516102849190611b2d565b60405180910390f35b6102a061029b366004611b8d565b6106f6565b005b6102b56102b0366004611ba8565b610821565b6040519015158152602001610284565b600b545b604051908152602001610284565b6102ea6102e5366004611bd2565b610837565b6040516001600160a01b039091168152602001610284565b6102a0610310366004611ba8565b610867565b6002546102c9565b6102c961032b366004611b8d565b60116020525f908152604090205481565b6102b561034a366004611be9565b610923565b6102c961035d366004611b8d565b61098a565b6102c9600f5481565b60405160128152602001610284565b6102a0610388366004611b8d565b6109e5565b6102b561039b366004611ba8565b610aa8565b6102b56103ae366004611b8d565b60106020525f908152604090205460ff1681565b6103d56103d0366004611bd2565b610add565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610284565b6102c9610428366004611b8d565b6001600160a01b03165f908152600c602052604090205490565b6102a0610450366004611bd2565b610b43565b6102a0610b72565b6102c960125481565b6102c9610474366004611b8d565b6001600160a01b03165f9081526020819052604090205490565b6102a0610c08565b6102c9600a5481565b6005546001600160a01b03166102ea565b6102c96104be366004611b8d565b610c3b565b610277610c45565b6006546102ea906001600160a01b031681565b6102c96104ec366004611b8d565b610c54565b6102b56104ff366004611ba8565b610c96565b6102c9610512366004611b8d565b610ce3565b6102b5610525366004611ba8565b610d0e565b6102c9610538366004611b8d565b6001600160a01b03165f9081526009602052604090205490565b6102a0610560366004611bd2565b610d1a565b6102b5610573366004611c34565b610dd6565b6102c960135481565b6102b561058f366004611b8d565b6001600160a01b03165f9081526010602052604090205460ff1690565b6102c96105ba366004611c6b565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6102a06105f2366004611ba8565b610e80565b600f546102c9565b6102a061060d366004611bd2565b610f0e565b6102a0610620366004611b8d565b61108a565b6103d5610633366004611b8d565b611122565b61064b610646366004611bd2565b611201565b60408051938452602084019290925290820152606001610284565b60606003805461067590611c97565b80601f01602080910402602001604051908101604052809291908181526020018280546106a190611c97565b80156106ec5780601f106106c3576101008083540402835291602001916106ec565b820191905f5260205f20905b8154815290600101906020018083116106cf57829003601f168201915b5050505050905090565b6001600160a01b0381165f908152600e602052604090205460ff166107185750565b6001600160a01b0381165f908152600e60209081526040808320805460ff19169055600c8252808320839055600d909152812054600b5490919061075e90600190611ce3565b90505f600b5f01828154811061077657610776611cf6565b5f9182526020808320909101546001600160a01b03908116808452600d90925260408084208790559087168352822091909155600b80549192508291859081106107c2576107c2611cf6565b5f91825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055600b8054806107fb576107fb611d0a565b5f8281526020902081015f1990810180546001600160a01b031916905501905550505050565b5f61082d338484611315565b5060015b92915050565b5f600b5f01828154811061084d5761084d611cf6565b5f918252602090912001546001600160a01b031692915050565b6001600160a01b0382165f908152600e602052604090205460ff16156108a3576001600160a01b03919091165f908152600c6020526040902055565b6001600160a01b0382165f818152600e60209081526040808320805460ff19166001908117909155600c8352818420869055600b8054600d909452918420839055820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b03191690911790555b5050565b5f61092f848484611438565b610980843361097b85604051806060016040528060288152602001611e38602891396001600160a01b038a165f908152600160209081526040808320338452909152902054919061148f565b611315565b5060019392505050565b6001600160a01b0381165f9081526008602090815260408083205491839052822054600754600160801b926109db926109d6926109d0916109cb91906114c7565b61154c565b9061155a565b611594565b6108319190611d1e565b6005546001600160a01b03163314610a185760405162461bcd60e51b8152600401610a0f90611d3d565b60405180910390fd5b6001600160a01b0381165f9081526010602052604090205460ff1615610a3c575f80fd5b6001600160a01b0381165f908152601060205260408120805460ff19166001179055610a699082906115a5565b610a72816106f6565b6040516001600160a01b038216907fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b25905f90a250565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161082d91859061097b9086611601565b5f805f805f805f80610aee600b5490565b8910610b1157505f96505f19955085945086935083925082915081905080610b38565b5f610b1b8a610837565b9050610b2681611122565b98509850985098509850985098509850505b919395975091939597565b6005546001600160a01b03163314610b6d5760405162461bcd60e51b8152600401610a0f90611d3d565b601355565b60405162461bcd60e51b815260206004820152605b60248201527f4469766964656e645f547261636b65723a20776974686472617744697669646560448201527f6e642064697361626c65642e20557365207468652027636c61696d272066756e60648201527f6374696f6e206f6e20746865206d61696e20636f6e74726163742e0000000000608482015260a401610a0f565b565b6005546001600160a01b03163314610c325760405162461bcd60e51b8152600401610a0f90611d3d565b610c065f61165f565b5f61083182610ce3565b60606004805461067590611c97565b6001600160a01b0381165f908152600e602052604081205460ff16610c7b57505f19919050565b506001600160a01b03165f908152600d602052604090205490565b5f61082d338461097b85604051806060016040528060258152602001611e6060259139335f9081526001602090815260408083206001600160a01b038d168452909152902054919061148f565b6001600160a01b0381165f9081526009602052604081205461083190610d088461098a565b906116b0565b5f61082d338484611438565b6005546001600160a01b03163314610d445760405162461bcd60e51b8152600401610a0f90611d3d565b5f610d4e60025490565b11610d57575f80fd5b8015610dd357610d8a610d6960025490565b610d7783600160801b6114c7565b610d819190611d1e565b60075490611601565b60075560405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a2600a54610dcf9082611601565b600a555b50565b6005545f906001600160a01b03163314610e025760405162461bcd60e51b8152600401610a0f90611d3d565b5f610e0c846116f1565b90508015610e77576001600160a01b0384165f81815260116020526040908190204290555184151591907fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf09290610e659085815260200190565b60405180910390a36001915050610831565b505f9392505050565b6005546001600160a01b03163314610eaa5760405162461bcd60e51b8152600401610a0f90611d3d565b6001600160a01b0382165f9081526010602052604090205460ff1661091f576013548110610eeb57610edc82826115a5565b610ee68282610867565b610efe565b610ef5825f6115a5565b610efe826106f6565b610f09826001610dd6565b505050565b6005546001600160a01b03163314610f385760405162461bcd60e51b8152600401610a0f90611d3d565b610e108110158015610f4d5750620151808111155b610fd75760405162461bcd60e51b815260206004820152604f60248201527f5544414f546f6b656e5f4469766964656e645f547261636b65723a20636c616960448201527f6d57616974206d757374206265207570646174656420746f206265747765656e60648201526e203120616e6420323420686f75727360881b608482015260a401610a0f565b60125481036110585760405162461bcd60e51b815260206004820152604160248201527f5544414f546f6b656e5f4469766964656e645f547261636b65723a2043616e6e60448201527f6f742075706461746520636c61696d5761697420746f2073616d652076616c756064820152606560f81b608482015260a401610a0f565b60125460405182907f474ea64804364a1e29a4487ddb63c3342a2dd826ccd8acf48825e680a0e6f20f905f90a3601255565b6005546001600160a01b031633146110b45760405162461bcd60e51b8152600401610a0f90611d3d565b6001600160a01b0381166111195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a0f565b610dd38161165f565b805f80808080808061113388610c54565b96505f1995505f871261119157600f5487111561115f57600f5461115890889061184c565b9550611191565b600f54600b545f9110611172575f611181565b600f54600b54611181916116b0565b905061118d888261155a565b9650505b61119a88610ce3565b94506111a58861098a565b6001600160a01b0389165f908152601160205260409020549094509250826111cd575f6111db565b6012546111db908490611601565b91504282116111ea575f6111f4565b6111f482426116b0565b9050919395975091939597565b600b545f9081908190808203611221575050600f545f925082915061130e565b600f545f805a90505f805b898410801561123a57508582105b156112fd578461124981611d72565b600b549096508610905061125b575f94505b5f600b5f01868154811061127157611271611cf6565b5f9182526020808320909101546001600160a01b031680835260119091526040909120549091506112a190611885565b156112c4576112b1816001610dd6565b156112c457816112c081611d72565b9250505b826112ce81611d72565b9350505f5a9050808511156112f4576112f16112ea86836116b0565b8790611601565b95505b935061122c9050565b600f85905590975095509193505050505b9193909250565b6001600160a01b0383166113775760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a0f565b6001600160a01b0382166113d85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a0f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405162461bcd60e51b815260206004820152602660248201527f4469766964656e645f547261636b65723a204e6f207472616e736665727320616044820152651b1b1bddd95960d21b6064820152608401610a0f565b5f81848411156114b25760405162461bcd60e51b8152600401610a0f9190611b2d565b505f6114be8486611ce3565b95945050505050565b5f825f036114d657505f610831565b5f6114e18385611d8a565b9050826114ee8583611d1e565b146115455760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a0f565b9392505050565b5f8181811215610831575f80fd5b5f806115668385611da1565b90505f83121580156115785750838112155b8061158c57505f8312801561158c57508381125b611545575f80fd5b5f808212156115a1575f80fd5b5090565b6001600160a01b0382165f90815260208190526040902054808211156115e2575f6115d083836116b0565b90506115dc84826118aa565b50505050565b80821015610f09575f6115f582846116b0565b90506115dc848261190c565b5f8061160d8385611dc8565b9050838110156115455760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a0f565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f61154583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148f565b5f806116fc83610ce3565b90508015611844576001600160a01b0383165f908152600960205260409020546117269082611601565b6001600160a01b0384165f81815260096020526040908190209290925590517fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d906117749084815260200190565b60405180910390a260065460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490525f92169063a9059cbb906044016020604051808303815f875af11580156117cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f09190611ddb565b90508061183d576001600160a01b0384165f9081526009602052604090205461181990836116b0565b6001600160a01b039094165f90815260096020526040812094909455509192915050565b5092915050565b505f92915050565b5f806118588385611df6565b90505f831215801561186a5750838113155b8061158c57505f8312801561158c5750838113611545575f80fd5b5f4282111561189557505f919050565b6012546118a242846116b0565b101592915050565b6118b4828261194f565b6118ed6118cf6109cb836007546114c790919063ffffffff16565b6001600160a01b0384165f908152600860205260409020549061184c565b6001600160a01b039092165f9081526008602052604090209190915550565b6119168282611a2c565b6118ed6119316109cb836007546114c790919063ffffffff16565b6001600160a01b0384165f908152600860205260409020549061155a565b6001600160a01b0382166119a55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206361737420746f20746865207a65726f2061646472657373006044820152606401610a0f565b6002546119b29082611601565b6002556001600160a01b0382165f908152602081905260409020546119d79082611601565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038216611a8c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a0f565b611ac881604051806060016040528060228152602001611e16602291396001600160a01b0385165f90815260208190526040902054919061148f565b6001600160a01b0383165f90815260208190526040902055600254611aed90826116b0565b6002556040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611a20565b5f602080835283518060208501525f5b81811015611b5957858101830151858201604001528201611b3d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dd3575f80fd5b5f60208284031215611b9d575f80fd5b813561154581611b79565b5f8060408385031215611bb9575f80fd5b8235611bc481611b79565b946020939093013593505050565b5f60208284031215611be2575f80fd5b5035919050565b5f805f60608486031215611bfb575f80fd5b8335611c0681611b79565b92506020840135611c1681611b79565b929592945050506040919091013590565b8015158114610dd3575f80fd5b5f8060408385031215611c45575f80fd5b8235611c5081611b79565b91506020830135611c6081611c27565b809150509250929050565b5f8060408385031215611c7c575f80fd5b8235611c8781611b79565b91506020830135611c6081611b79565b600181811c90821680611cab57607f821691505b602082108103611cc957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561083157610831611ccf565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f82611d3857634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60018201611d8357611d83611ccf565b5060010190565b808202811582820484141761083157610831611ccf565b8082018281125f831280158216821582161715611dc057611dc0611ccf565b505092915050565b8082018082111561083157610831611ccf565b5f60208284031215611deb575f80fd5b815161154581611c27565b8181035f83128015838313168383128216171561183d5761183d611ccf56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220780f40f3b69e4121af92a32fe3fd835ac6d43159d96c5e1e4e523b72b3c0d7aa64736f6c634300081800330000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000003635c9adc5dea00000
0x608060405234801561000f575f80fd5b506004361061026b575f3560e01c806385a6b3ae1161014b578063ba72a955116100bf578063e30443bc11610084578063e30443bc146105e4578063e7841ec0146105f7578063e98030c7146105ff578063f2fde38b14610612578063fbcbc0f114610625578063ffb2c47914610638575f80fd5b8063ba72a95514610552578063bc4c4b3714610565578063be10b61414610578578063c705c56914610581578063dd62ed3e146105ac575f80fd5b8063a3395cb411610110578063a3395cb4146104de578063a457c2d7146104f1578063a8b9d24014610504578063a9059cbb14610517578063aafd847a1461052a578063b1181e55146102c5575f80fd5b806385a6b3ae146104965780638da5cb5b1461049f57806391b89fba146104b057806395d89b41146104c357806399248ea7146104cb575f80fd5b8063313ce567116101e2578063556cafb0116101a7578063556cafb01461041a5780635ebf4db9146104425780636a474002146104555780636f2789ec1461045d57806370a0823114610466578063715018a61461048e575f80fd5b8063313ce5671461036b57806331e79db01461037a578063395093511461038d5780634e7b827f146103a05780635183d6fd146103c2575f80fd5b80631105e740116102335780631105e7401461030257806318160ddd14610315578063226cfa3d1461031d57806323b872dd1461033c57806327ce01471461034f5780633009a60914610362575f80fd5b806306fdde031461026f5780630716c6111461028d578063095ea7b3146102a257806309bbedde146102c557806310a8c46b146102d7575b5f80fd5b610277610666565b6040516102849190611b2d565b60405180910390f35b6102a061029b366004611b8d565b6106f6565b005b6102b56102b0366004611ba8565b610821565b6040519015158152602001610284565b600b545b604051908152602001610284565b6102ea6102e5366004611bd2565b610837565b6040516001600160a01b039091168152602001610284565b6102a0610310366004611ba8565b610867565b6002546102c9565b6102c961032b366004611b8d565b60116020525f908152604090205481565b6102b561034a366004611be9565b610923565b6102c961035d366004611b8d565b61098a565b6102c9600f5481565b60405160128152602001610284565b6102a0610388366004611b8d565b6109e5565b6102b561039b366004611ba8565b610aa8565b6102b56103ae366004611b8d565b60106020525f908152604090205460ff1681565b6103d56103d0366004611bd2565b610add565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610284565b6102c9610428366004611b8d565b6001600160a01b03165f908152600c602052604090205490565b6102a0610450366004611bd2565b610b43565b6102a0610b72565b6102c960125481565b6102c9610474366004611b8d565b6001600160a01b03165f9081526020819052604090205490565b6102a0610c08565b6102c9600a5481565b6005546001600160a01b03166102ea565b6102c96104be366004611b8d565b610c3b565b610277610c45565b6006546102ea906001600160a01b031681565b6102c96104ec366004611b8d565b610c54565b6102b56104ff366004611ba8565b610c96565b6102c9610512366004611b8d565b610ce3565b6102b5610525366004611ba8565b610d0e565b6102c9610538366004611b8d565b6001600160a01b03165f9081526009602052604090205490565b6102a0610560366004611bd2565b610d1a565b6102b5610573366004611c34565b610dd6565b6102c960135481565b6102b561058f366004611b8d565b6001600160a01b03165f9081526010602052604090205460ff1690565b6102c96105ba366004611c6b565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6102a06105f2366004611ba8565b610e80565b600f546102c9565b6102a061060d366004611bd2565b610f0e565b6102a0610620366004611b8d565b61108a565b6103d5610633366004611b8d565b611122565b61064b610646366004611bd2565b611201565b60408051938452602084019290925290820152606001610284565b60606003805461067590611c97565b80601f01602080910402602001604051908101604052809291908181526020018280546106a190611c97565b80156106ec5780601f106106c3576101008083540402835291602001916106ec565b820191905f5260205f20905b8154815290600101906020018083116106cf57829003601f168201915b5050505050905090565b6001600160a01b0381165f908152600e602052604090205460ff166107185750565b6001600160a01b0381165f908152600e60209081526040808320805460ff19169055600c8252808320839055600d909152812054600b5490919061075e90600190611ce3565b90505f600b5f01828154811061077657610776611cf6565b5f9182526020808320909101546001600160a01b03908116808452600d90925260408084208790559087168352822091909155600b80549192508291859081106107c2576107c2611cf6565b5f91825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055600b8054806107fb576107fb611d0a565b5f8281526020902081015f1990810180546001600160a01b031916905501905550505050565b5f61082d338484611315565b5060015b92915050565b5f600b5f01828154811061084d5761084d611cf6565b5f918252602090912001546001600160a01b031692915050565b6001600160a01b0382165f908152600e602052604090205460ff16156108a3576001600160a01b03919091165f908152600c6020526040902055565b6001600160a01b0382165f818152600e60209081526040808320805460ff19166001908117909155600c8352818420869055600b8054600d909452918420839055820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b03191690911790555b5050565b5f61092f848484611438565b610980843361097b85604051806060016040528060288152602001611e38602891396001600160a01b038a165f908152600160209081526040808320338452909152902054919061148f565b611315565b5060019392505050565b6001600160a01b0381165f9081526008602090815260408083205491839052822054600754600160801b926109db926109d6926109d0916109cb91906114c7565b61154c565b9061155a565b611594565b6108319190611d1e565b6005546001600160a01b03163314610a185760405162461bcd60e51b8152600401610a0f90611d3d565b60405180910390fd5b6001600160a01b0381165f9081526010602052604090205460ff1615610a3c575f80fd5b6001600160a01b0381165f908152601060205260408120805460ff19166001179055610a699082906115a5565b610a72816106f6565b6040516001600160a01b038216907fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b25905f90a250565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161082d91859061097b9086611601565b5f805f805f805f80610aee600b5490565b8910610b1157505f96505f19955085945086935083925082915081905080610b38565b5f610b1b8a610837565b9050610b2681611122565b98509850985098509850985098509850505b919395975091939597565b6005546001600160a01b03163314610b6d5760405162461bcd60e51b8152600401610a0f90611d3d565b601355565b60405162461bcd60e51b815260206004820152605b60248201527f4469766964656e645f547261636b65723a20776974686472617744697669646560448201527f6e642064697361626c65642e20557365207468652027636c61696d272066756e60648201527f6374696f6e206f6e20746865206d61696e20636f6e74726163742e0000000000608482015260a401610a0f565b565b6005546001600160a01b03163314610c325760405162461bcd60e51b8152600401610a0f90611d3d565b610c065f61165f565b5f61083182610ce3565b60606004805461067590611c97565b6001600160a01b0381165f908152600e602052604081205460ff16610c7b57505f19919050565b506001600160a01b03165f908152600d602052604090205490565b5f61082d338461097b85604051806060016040528060258152602001611e6060259139335f9081526001602090815260408083206001600160a01b038d168452909152902054919061148f565b6001600160a01b0381165f9081526009602052604081205461083190610d088461098a565b906116b0565b5f61082d338484611438565b6005546001600160a01b03163314610d445760405162461bcd60e51b8152600401610a0f90611d3d565b5f610d4e60025490565b11610d57575f80fd5b8015610dd357610d8a610d6960025490565b610d7783600160801b6114c7565b610d819190611d1e565b60075490611601565b60075560405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a2600a54610dcf9082611601565b600a555b50565b6005545f906001600160a01b03163314610e025760405162461bcd60e51b8152600401610a0f90611d3d565b5f610e0c846116f1565b90508015610e77576001600160a01b0384165f81815260116020526040908190204290555184151591907fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf09290610e659085815260200190565b60405180910390a36001915050610831565b505f9392505050565b6005546001600160a01b03163314610eaa5760405162461bcd60e51b8152600401610a0f90611d3d565b6001600160a01b0382165f9081526010602052604090205460ff1661091f576013548110610eeb57610edc82826115a5565b610ee68282610867565b610efe565b610ef5825f6115a5565b610efe826106f6565b610f09826001610dd6565b505050565b6005546001600160a01b03163314610f385760405162461bcd60e51b8152600401610a0f90611d3d565b610e108110158015610f4d5750620151808111155b610fd75760405162461bcd60e51b815260206004820152604f60248201527f5544414f546f6b656e5f4469766964656e645f547261636b65723a20636c616960448201527f6d57616974206d757374206265207570646174656420746f206265747765656e60648201526e203120616e6420323420686f75727360881b608482015260a401610a0f565b60125481036110585760405162461bcd60e51b815260206004820152604160248201527f5544414f546f6b656e5f4469766964656e645f547261636b65723a2043616e6e60448201527f6f742075706461746520636c61696d5761697420746f2073616d652076616c756064820152606560f81b608482015260a401610a0f565b60125460405182907f474ea64804364a1e29a4487ddb63c3342a2dd826ccd8acf48825e680a0e6f20f905f90a3601255565b6005546001600160a01b031633146110b45760405162461bcd60e51b8152600401610a0f90611d3d565b6001600160a01b0381166111195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a0f565b610dd38161165f565b805f80808080808061113388610c54565b96505f1995505f871261119157600f5487111561115f57600f5461115890889061184c565b9550611191565b600f54600b545f9110611172575f611181565b600f54600b54611181916116b0565b905061118d888261155a565b9650505b61119a88610ce3565b94506111a58861098a565b6001600160a01b0389165f908152601160205260409020549094509250826111cd575f6111db565b6012546111db908490611601565b91504282116111ea575f6111f4565b6111f482426116b0565b9050919395975091939597565b600b545f9081908190808203611221575050600f545f925082915061130e565b600f545f805a90505f805b898410801561123a57508582105b156112fd578461124981611d72565b600b549096508610905061125b575f94505b5f600b5f01868154811061127157611271611cf6565b5f9182526020808320909101546001600160a01b031680835260119091526040909120549091506112a190611885565b156112c4576112b1816001610dd6565b156112c457816112c081611d72565b9250505b826112ce81611d72565b9350505f5a9050808511156112f4576112f16112ea86836116b0565b8790611601565b95505b935061122c9050565b600f85905590975095509193505050505b9193909250565b6001600160a01b0383166113775760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a0f565b6001600160a01b0382166113d85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a0f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405162461bcd60e51b815260206004820152602660248201527f4469766964656e645f547261636b65723a204e6f207472616e736665727320616044820152651b1b1bddd95960d21b6064820152608401610a0f565b5f81848411156114b25760405162461bcd60e51b8152600401610a0f9190611b2d565b505f6114be8486611ce3565b95945050505050565b5f825f036114d657505f610831565b5f6114e18385611d8a565b9050826114ee8583611d1e565b146115455760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a0f565b9392505050565b5f8181811215610831575f80fd5b5f806115668385611da1565b90505f83121580156115785750838112155b8061158c57505f8312801561158c57508381125b611545575f80fd5b5f808212156115a1575f80fd5b5090565b6001600160a01b0382165f90815260208190526040902054808211156115e2575f6115d083836116b0565b90506115dc84826118aa565b50505050565b80821015610f09575f6115f582846116b0565b90506115dc848261190c565b5f8061160d8385611dc8565b9050838110156115455760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a0f565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f61154583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148f565b5f806116fc83610ce3565b90508015611844576001600160a01b0383165f908152600960205260409020546117269082611601565b6001600160a01b0384165f81815260096020526040908190209290925590517fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d906117749084815260200190565b60405180910390a260065460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490525f92169063a9059cbb906044016020604051808303815f875af11580156117cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f09190611ddb565b90508061183d576001600160a01b0384165f9081526009602052604090205461181990836116b0565b6001600160a01b039094165f90815260096020526040812094909455509192915050565b5092915050565b505f92915050565b5f806118588385611df6565b90505f831215801561186a5750838113155b8061158c57505f8312801561158c5750838113611545575f80fd5b5f4282111561189557505f919050565b6012546118a242846116b0565b101592915050565b6118b4828261194f565b6118ed6118cf6109cb836007546114c790919063ffffffff16565b6001600160a01b0384165f908152600860205260409020549061184c565b6001600160a01b039092165f9081526008602052604090209190915550565b6119168282611a2c565b6118ed6119316109cb836007546114c790919063ffffffff16565b6001600160a01b0384165f908152600860205260409020549061155a565b6001600160a01b0382166119a55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206361737420746f20746865207a65726f2061646472657373006044820152606401610a0f565b6002546119b29082611601565b6002556001600160a01b0382165f908152602081905260409020546119d79082611601565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038216611a8c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a0f565b611ac881604051806060016040528060228152602001611e16602291396001600160a01b0385165f90815260208190526040902054919061148f565b6001600160a01b0383165f90815260208190526040902055600254611aed90826116b0565b6002556040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611a20565b5f602080835283518060208501525f5b81811015611b5957858101830151858201604001528201611b3d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dd3575f80fd5b5f60208284031215611b9d575f80fd5b813561154581611b79565b5f8060408385031215611bb9575f80fd5b8235611bc481611b79565b946020939093013593505050565b5f60208284031215611be2575f80fd5b5035919050565b5f805f60608486031215611bfb575f80fd5b8335611c0681611b79565b92506020840135611c1681611b79565b929592945050506040919091013590565b8015158114610dd3575f80fd5b5f8060408385031215611c45575f80fd5b8235611c5081611b79565b91506020830135611c6081611c27565b809150509250929050565b5f8060408385031215611c7c575f80fd5b8235611c8781611b79565b91506020830135611c6081611b79565b600181811c90821680611cab57607f821691505b602082108103611cc957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561083157610831611ccf565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f82611d3857634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60018201611d8357611d83611ccf565b5060010190565b808202811582820484141761083157610831611ccf565b8082018281125f831280158216821582161715611dc057611dc0611ccf565b505092915050565b8082018082111561083157610831611ccf565b5f60208284031215611deb575f80fd5b815161154581611c27565b8181035f83128015838313168383128216171561183d5761183d611ccf56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220780f40f3b69e4121af92a32fe3fd835ac6d43159d96c5e1e4e523b72b3c0d7aa64736f6c63430008180033