false
false

Contract Address Details

0xD42912755319665397FF090fBB63B1a31aE87Cee

Creator
0xf39fd6–b92266 at 0xc3bd2e–f8c46f
Balance
0 KCS
Tokens
Fetching tokens...
Transactions
204 Transactions
Transfers
69 Transfers
Gas Used
43,185,325
Last Balance Update
51560107

Contract Creation Code

Verify & Publish
0x608060405260646008556802b5e3af16b18800006009556611c37937e08000600a553480156200002e57600080fd5b50604051620056f2380380620056f2833981016040819052620000519162000215565b60016000556200006133620001a6565b600d80546001600160a01b039384166001600160a01b031991821617909155600e805492909316911617905560116020527f4ad3b33220dddc71b994a52d72c06b10862965f7d926534c05c00fb7e819e7b7805463ffffffff199081166001179091557f17bc176d2408558f6e4111feebc3cab4e16b63e967be91cde721f4c8a488b55280548216600b1790557f08037d7b151cc412d25674a4e66b334d9ae9d2e5517a7feaae5cdb828bf1c62880548216606f1790557f9bfbaa59f8e10e7868f8b402de9d605a390c45ddaebd8c9de3c6f31e733c87ff805482166104571790557f251164fe1d8864fe5e86082eae9c288bc2b58695a4d28538dfe86e9e4f17558580548216612b6717905560056000527fc550213cee30afd5e67ccba7be3d381bbc169034ae08eb3ec9168caca9fe55e780549091166201b2071790556200024c565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200021057600080fd5b919050565b6000806040838503121562000228578182fd5b6200023383620001f8565b91506200024360208401620001f8565b90509250929050565b615496806200025c6000396000f3fe6080604052600436106102bf5760003560e01c80638da5cb5b1161016e578063c4937ab9116100cb578063e6fbc6cc1161007f578063e90386bf11610064578063e90386bf146107b9578063f2b3c809146107cf578063f2fde38b146107e557600080fd5b8063e6fbc6cc14610779578063e7b85f6c1461079957600080fd5b8063c8af6db5116100b0578063c8af6db51461072c578063c914914f14610759578063db19da0d1461053857600080fd5b8063c4937ab9146106df578063c5f956af146106ff57600080fd5b80639d8ca53111610122578063b1829b8211610107578063b1829b8214610689578063c306625d146106a9578063c38de539146106bf57600080fd5b80639d8ca53114610649578063b0d2eb741461065c57600080fd5b80638fc3539a116101535780638fc3539a146105ce57806398359fa1146105fc5780639c3846531461061c57600080fd5b80638da5cb5b146105835780638eec73e0146105ae57600080fd5b80633cb4e7a11161021c5780636be4097c116101d05780637cb583bd116101b55780637cb583bd1461053857806380a061601461054e57806388303dbd1461056357600080fd5b80636be4097c1461050d578063715018a61461052357600080fd5b8063471aeab411610201578063471aeab4146104b7578063686465b8146104d75780636b873788146104ed57600080fd5b80633cb4e7a1146104815780633f138d4b1461049757600080fd5b8063127effb2116102735780631fe86c6b116102585780631fe86c6b1461041e5780632423807a146104345780632e530cae1461046157600080fd5b8063127effb2146103db57806312a9769d1461040857600080fd5b80630614117a116102a45780630614117a1461034f57806307fb5a9c14610366578063100a4dab1461038957600080fd5b806305531eeb146102cb57806305b2f86b1461030457600080fd5b366102c657005b600080fd5b3480156102d757600080fd5b506102eb6102e6366004614bae565b610805565b6040516102fb9493929190614f81565b60405180910390f35b34801561031057600080fd5b5061033f61031f366004614c72565b601460209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016102fb565b34801561035b57600080fd5b50610364610cb8565b005b34801561037257600080fd5b5061037b603c81565b6040519081526020016102fb565b34801561039557600080fd5b50600d546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102fb565b3480156103e757600080fd5b506003546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041457600080fd5b5061037b600b5481565b34801561042a57600080fd5b5061037b60085481565b34801561044057600080fd5b5061045461044f366004614c42565b610cf2565b6040516102fb9190615074565b34801561046d57600080fd5b5061037b61047c366004614e26565b610ea1565b34801561048d57600080fd5b5061037b600a5481565b3480156104a357600080fd5b506103646104b2366004614b2d565b610f4f565b3480156104c357600080fd5b506103646104d2366004614d8d565b611055565b3480156104e357600080fd5b5061037b60075481565b3480156104f957600080fd5b50610364610508366004614c42565b61122f565b34801561051957600080fd5b5061037b60065481565b34801561052f57600080fd5b506103646112a3565b34801561054457600080fd5b5061037b61012c81565b34801561055a57600080fd5b5060065461037b565b34801561056f57600080fd5b5061036461057e366004614d14565b6112b7565b34801561058f57600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff166103b6565b3480156105ba57600080fd5b506103646105c9366004614d8d565b611411565b3480156105da57600080fd5b506105ee6105e9366004614be6565b61148e565b6040516102fb929190614ff5565b34801561060857600080fd5b50610364610617366004614ac0565b611766565b34801561062857600080fd5b506002546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b610364610657366004614c42565b611985565b34801561066857600080fd5b50600e546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b34801561069557600080fd5b506103646106a4366004614dd9565b611d10565b3480156106b557600080fd5b5061037b600c5481565b3480156106cb57600080fd5b506103646106da366004614d5e565b612386565b3480156106eb57600080fd5b5061037b6106fa366004614dae565b612bdb565b34801561070b57600080fd5b506004546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b34801561073857600080fd5b506005546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b34801561076557600080fd5b50610364610774366004614c9d565b612cbb565b34801561078557600080fd5b50610364610794366004614b56565b61352f565b3480156107a557600080fd5b506103646107b4366004614ada565b6137af565b3480156107c557600080fd5b5061037b60095481565b3480156107db57600080fd5b5061037b610bb881565b3480156107f157600080fd5b50610364610800366004614ac0565b613a6b565b73ffffffffffffffffffffffffffffffffffffffff841660009081526013602090815260408083208684529091528120546060918291829190859061084a88826152fa565b82111561085e5761085b88826152fa565b91505b60008267ffffffffffffffff8111156108a0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156108c9578160200160208202803683370190505b50905060008367ffffffffffffffff81111561090e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610937578160200160208202803683370190505b50905060008467ffffffffffffffff81111561097c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156109a5578160200160208202803683370190505b50905060005b85811015610c9257601360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e81526020019081526020016000208c82610a0f9190615137565b81548110610a46577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154848281518110610a8a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505060106000858381518110610ad3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151815260200190815260200160002060000160009054906101000a900463ffffffff16838281518110610b36577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff1681525050600073ffffffffffffffffffffffffffffffffffffffff1660106000868481518110610ba5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602090810291909101810151825281019190915260400160002054640100000000900473ffffffffffffffffffffffffffffffffffffffff161415610c34576001828281518110610c1f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91151560209283029190910190910152610c80565b6000828281518110610c6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b911515602092830291909101909101525b80610c8a81615362565b9150506109ab565b50828282610ca0888f615137565b98509850985098505050505050945094509450949050565b610cc0613b1f565b478015610cef57610cef610ce960015473ffffffffffffffffffffffffffffffffffffffff1690565b82613ba0565b50565b610cfa614962565b6000828152600f60205260409081902081516101a081019092528054829060ff166003811115610d53577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811115610d8b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526001820154602082015260028201546040808301919091526003830154606083015260048301546080830152805160c081019182905260a09092019190600584019060069082845b815481526020019060010190808311610dd5575050509183525050600b82015460208201526040805160c081018252910190600c830160068282826020028201915b815481526020019060010190808311610e175750505091835250506040805160c081019182905260209092019190601284019060069082845b815481526020019060010190808311610e505750505091835250506018820154602082015260198201546040820152601a8201546060820152601b9091015463ffffffff1660809091015292915050565b600060036000858152600f602052604090205460ff166003811115610eef577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14610efc57506000610f48565b6000848152600f602052604090206019015483118015610f2d57506000848152600f60205260409020601801548311155b15610f3a57506000610f48565b610f45848484613cff565b90505b9392505050565b610f57613b1f565b600d5473ffffffffffffffffffffffffffffffffffffffff83811691161415610fe1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43616e6e6f74206265204d4a5420746f6b656e0000000000000000000000000060448201526064015b60405180910390fd5b61100273ffffffffffffffffffffffffffffffffffffffff83163383613e31565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527f74545154aac348a3eac92596bd1971957ca94795f4e954ec5f613b55fab78129910160405180910390a15050565b60015473ffffffffffffffffffffffffffffffffffffffff16331480611092575060025473ffffffffffffffffffffffffffffffffffffffff1633145b6110f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f7220696e6a6563746f7200000000000000000000006044820152606401610fd8565b60016000838152600f602052604090205460ff166003811115611144577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b146111ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c6f7474657279206e6f74206f70656e000000000000000000000000000000006044820152606401610fd8565b600d546111d09073ffffffffffffffffffffffffffffffffffffffff16333084613f05565b6000828152600f60205260408120601a0180548392906111f1908490615137565b909155505060405181815282907f1bbd659dd628a25f7ff2eabb69c74a56939c539728282275c1c9c1a2d3e340499060200160405180910390a25050565b611237613b1f565b8061129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4d757374206265203e20300000000000000000000000000000000000000000006044820152606401610fd8565b600855565b6112ab613b1f565b6112b56000613f69565b565b333b15611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436f6e7472616374206e6f7420616c6c6f7765640000000000000000000000006044820152606401610fd8565b333214611389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f50726f787920636f6e7472616374206e6f7420616c6c6f7765640000000000006044820152606401610fd8565b600260005414156113f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610fd8565b600260005561140733848484613fe0565b5050600160005550565b611419613b1f565b80821115611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d696e5072696365206d757374206265203c206d6178507269636500000000006044820152606401610fd8565b600a91909155600955565b6060808260008167ffffffffffffffff8111156114d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156114fd578160200160208202803683370190505b50905060008267ffffffffffffffff811115611542577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561156b578160200160208202803683370190505b50905060005b8381101561175757601060008989848181106115b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135815260200190815260200160002060000160009054906101000a900463ffffffff16838281518110611618577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b63ffffffff9092166020928302919091019091015260006010818a8a8581811061166b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020908102929092013583525081019190915260400160002054640100000000900473ffffffffffffffffffffffffffffffffffffffff1614156116f95760018282815181106116e4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91151560209283029190910190910152611745565b6000828281518110611734577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b911515602092830291909101909101525b8061174f81615362565b915050611571565b509093509150505b9250929050565b61176e613b1f565b60065415806117c9575060036006546000908152600f602052604090205460ff1660038111156117c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b145b61182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4c6f7474657279206e6f7420696e20636c61696d61626c6500000000000000006044820152606401610fd8565b60008173ffffffffffffffffffffffffffffffffffffffff16639938fd0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118af9190614c5a565b11611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f52616e646f6d2067656e657261746f72206572726f72000000000000000000006044820152606401610fd8565b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f383f8cb39dfa7c3fb901a460dd449ea924868f0a92ff03da64740fffa5f1de6290600090a250565b60035473ffffffffffffffffffffffffffffffffffffffff163314611a06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f74206f70657261746f7200000000000000000000000000000000000000006044820152606401610fd8565b60026000541415611a73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610fd8565b600260005560016000828152600f602052604090205460ff166003811115611ac4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611b2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c6f7474657279206e6f74206f70656e000000000000000000000000000000006044820152606401610fd8565b6000818152600f60205260409020600201544211611ba5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c6f7474657279206e6f74206f766572000000000000000000000000000000006044820152606401610fd8565b6007546000828152600f6020908152604080832060190193909355600e5483517f699b328a0000000000000000000000000000000000000000000000000000000081529351929373ffffffffffffffffffffffffffffffffffffffff9091169263699b328a9234926004808201939182900301818588803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c629190614c5a565b905034811015611c7f57611c7f33611c7a83346152fa565b613ba0565b43600c556000828152600f602052604090208054600291907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001830217905550600754600c54604080519283526020830184905282015282907f5ec5453262983f3767a4af859a84694c1436f21dc1e13f32ab833a4ec6bfb0799060600160405180910390a250506001600055565b60035473ffffffffffffffffffffffffffffffffffffffff163314611d91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f74206f70657261746f7200000000000000000000000000000000000000006044820152606401610fd8565b6006541580611dec575060036006546000908152600f602052604090205460ff166003811115611dea577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b145b611e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4e6f742074696d6520746f207374617274206c6f7474657279000000000000006044820152606401610fd8565b603c611e5e42876152fa565b118015611e75575061012c611e7342876152fa565b105b611edb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c6f7474657279206c656e677468206f757473696465206f662072616e6765006044820152606401610fd8565b600a548410158015611eef57506009548411155b611f55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4f757473696465206f66206c696d6974730000000000000000000000000000006044820152606401610fd8565b61012c831015611fc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f446973636f756e742064697669736f7220746f6f206c6f7700000000000000006044820152606401610fd8565b610bb881111561202d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f54726561737572792066656520746f6f206869676800000000000000000000006044820152606401610fd8565b60a082013560808301356060840135604085013561205060208701358735615137565b61205a9190615137565b6120649190615137565b61206e9190615137565b6120789190615137565b612710146120e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f52657761726473206d75737420657175616c20313030303000000000000000006044820152606401610fd8565b600680549060006120f283615362565b9091555050604080516101a0810190915280600181526020014281526020018681526020018581526020018481526020018360068060200260405190810160405280929190826006602002808284376000920182905250928452505060208083018590526040805160c080820183528482528184018590528183018590526060808301869052608080840187905260a080850188905285890194909452845180840186528781528087018890528086018890528083018890528082018890528085018890529188019190915260075490870181905291860191909152600b549085015260e09093018290526006548252600f9052208151815482907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600381111561224a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151600182015560408201516002820155606082015160038201556080820151600482015560a082015161228c90600583019060066149e3565b5060c0820151600b82015560e08201516122ac90600c83019060066149e3565b506101008201516122c390601283019060066149e3565b5061012082015160188201556101408201516019820155610160820151601a82015561018090910151601b90910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909216919091179055600654600754600b5460408051428152602081018a9052908101889052606081019290925260808201527f367e70f8c0e0c0a6504d92172bda155c02022d532fc85b5d66a9c49e31c8bc779060a00160405180910390a250506000600b55505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314612407576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f74206f70657261746f7200000000000000000000000000000000000000006044820152606401610fd8565b60026000541415612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610fd8565b60026000818155838152600f602052604090205460ff1660038111156124c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461252a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4c6f7474657279206e6f7420636c6f73650000000000000000000000000000006044820152606401610fd8565b600e54600c546040517f9bc86fec00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691639bc86fec916125859160040190815260200190565b60206040518083038186803b15801561259d57600080fd5b505afa1580156125b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d59190614c26565b61263b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e756d62657273206e6f7420647261776e0000000000000000000000000000006044820152606401610fd8565b600e54600c546040517f24cbbfc100000000000000000000000000000000000000000000000000000000815263ffffffff60048201526000602482018190526044820192909252909173ffffffffffffffffffffffffffffffffffffffff16906324cbbfc19060640160206040518083038186803b1580156126bc57600080fd5b505afa1580156126d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f49190614e7a565b9050612703620f4240826153bf565b61271090620f424061514f565b6000848152600f60205260408120600b01549192509081906127109061273690826152fa565b6000878152600f60205260409020601a015461275291906152bd565b61275c9190615177565b90506000805b60068163ffffffff161015612ac057600061277e826005615311565b9050600061278d82600161514f565b61279890600a6151d2565b6127a290886153bf565b63ffffffff8084166000908152601160205260409020546127c492911661514f565b60008a815260126020908152604080832063ffffffff851684529091529020549091506127f29087906152fa565b60008a8152600f6020526040902060120163ffffffff841660068110612841577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0155600089815260126020908152604080832063ffffffff8516845290915290205461286e9087906152fa565b156129e2576000898152600f6020526040902060050163ffffffff8316600681106128c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154156129dd57600089815260126020908152604080832063ffffffff85168452909152902054612710906128f89088906152fa565b60008b8152600f60205260409020879060050163ffffffff861660068110612949577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461295591906152bd565b61295f9190615177565b6129699190615177565b60008a8152600f60205260409020600c0163ffffffff8416600681106129b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0155600089815260126020908152604080832063ffffffff8516845290915290205495505b612aab565b6000898152600f60205260408120600c0163ffffffff841660068110612a31577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b01556000898152600f6020526040902061271090869060050163ffffffff851660068110612a88577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154612a9491906152bd565b612a9e9190615177565b612aa89085615137565b93505b50508080612ab89061539b565b915050612762565b506000868152600f60205260409020601b8101805463ffffffff87167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090911617905580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660031790558415612b3857600b5560005b6000868152600f60205260409020601a0154612b559083906152fa565b612b5f9082615137565b600454600d54919250612b8c9173ffffffffffffffffffffffffffffffffffffffff908116911683613e31565b6006546040805163ffffffff87168152602081018690527f98e31a6607b8b15b4d5b91de54f4c09ffe4c4cf162aa532c70b5213754e2e703910160405180910390a25050600160005550505050565b600061012c841015612c49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d757374206265203e3d204d494e5f444953434f554e545f44495649534f52006044820152606401610fd8565b81612cb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4e756d626572206f66207469636b657473206d757374206265203e20300000006044820152606401610fd8565b610f458484846146bd565b333b15612d24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436f6e7472616374206e6f7420616c6c6f7765640000000000000000000000006044820152606401610fd8565b333214612d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f50726f787920636f6e7472616374206e6f7420616c6c6f7765640000000000006044820152606401610fd8565b60026000541415612dfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610fd8565b6002600055828114612e68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742073616d65206c656e67746800000000000000000000000000000000006044820152606401610fd8565b82612ecf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4c656e677468206d757374206265203e300000000000000000000000000000006044820152606401610fd8565b600854831115612f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f206d616e79207469636b657473000000000000000000000000000000006044820152606401610fd8565b60036000868152600f602052604090205460ff166003811115612f87577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14612fee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4c6f7474657279206e6f7420636c61696d61626c6500000000000000000000006044820152606401610fd8565b6000805b848110156134c0576006848483818110613035577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061304a9190614e5e565b63ffffffff16106130b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f427261636b6574206f7574206f662072616e67650000000000000000000000006044820152606401610fd8565b60008686838181106130f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135905080600f60008a8152602001908152602001600020601901541161317a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5469636b6574496420746f6f20686967680000000000000000000000000000006044820152606401610fd8565b6000888152600f60205260409020601801548110156131f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5469636b6574496420746f6f206c6f77000000000000000000000000000000006044820152606401610fd8565b600081815260106020526040902054640100000000900473ffffffffffffffffffffffffffffffffffffffff16331461328a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f7420746865206f776e6572000000000000000000000000000000000000006044820152606401610fd8565b600081815260106020526040812080547fffffffffffffffff0000000000000000000000000000000000000000ffffffff16905561331689838888878181106132fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906133119190614e5e565b613cff565b90508061337f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4e6f207072697a6520666f72207468697320627261636b6574000000000000006044820152606401610fd8565b8585848181106133b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906133cd9190614e5e565b63ffffffff1660051461349f576134388983888887818110613418577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061342d9190614e5e565b61331190600161514f565b1561349f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f427261636b6574206d75737420626520686967686572000000000000000000006044820152606401610fd8565b6134a98185615137565b9350505080806134b890615362565b915050612ff2565b50600d546134e59073ffffffffffffffffffffffffffffffffffffffff163383613e31565b6040805182815260208101869052879133917f0f5fca62da8fb5d95525b49e5eaa7b20bc6bd9e2f6b64b493442d1c0bd6ef486910160405180910390a35050600160005550505050565b60055473ffffffffffffffffffffffffffffffffffffffff1633146135b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f4e6f7420626f74000000000000000000000000000000000000000000000000006044820152606401610fd8565b600083815260146020908152604080832073ffffffffffffffffffffffffffffffffffffffff8816845290915290205460ff161561364a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4175746f20627579207461736b206861732066696e69736865640000000000006044820152606401610fd8565b600083815260146020908152604080832073ffffffffffffffffffffffffffffffffffffffff8881168086529190935281842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d5491517f70a0823100000000000000000000000000000000000000000000000000000000815260048101919091529116906370a082319060240160206040518083038186803b1580156136fa57600080fd5b505afa15801561370e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137329190614c5a565b905061374085858585613fe0565b838573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fbf05a216b1c4cf8d87decac539fee4a6bb2ce137cc186c5e73451d2081dbd473846040516137a091815260200190565b60405180910390a45050505050565b6137b7613b1f565b73ffffffffffffffffffffffffffffffffffffffff8416613834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f2061646472657373000000000000000000006044820152606401610fd8565b73ffffffffffffffffffffffffffffffffffffffff83166138b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f2061646472657373000000000000000000006044820152606401610fd8565b73ffffffffffffffffffffffffffffffffffffffff821661392e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f2061646472657373000000000000000000006044820152606401610fd8565b73ffffffffffffffffffffffffffffffffffffffff81166139ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f2061646472657373000000000000000000006044820152606401610fd8565b6003805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff000000000000000000000000000000000000000092831681179093556004805487831690841681179091556002805487841690851681179091556005805493871693909416831790935560408051948552602085019190915283019190915260608201527ffaa5a6d898018caa25925a386a8fbac436351bde8b2aa41e5e59d05138e721b09060800160405180910390a150505050565b613a73613b1f565b73ffffffffffffffffffffffffffffffffffffffff8116613b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610fd8565b610cef81613f69565b60015473ffffffffffffffffffffffffffffffffffffffff1633146112b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fd8565b80471015613c0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610fd8565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5050905080613cfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610fd8565b505050565b6000838152600f60209081526040808320601b0154858452601090925282205463ffffffff918216911682613d3585600161514f565b613d4090600a6151d2565b613d4a90846153bf565b63ffffffff808716600090815260116020526040902054613d6c92911661514f565b90506000613d7b86600161514f565b613d8690600a6151d2565b613d9090846153bf565b63ffffffff808816600090815260116020526040902054613db292911661514f565b90508063ffffffff168263ffffffff161415613e24576000888152600f60205260409020600c0163ffffffff871660068110613e17577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154945050505050610f48565b6000945050505050610f48565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052613cfa9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526146f4565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052613f639085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401613e83565b50505050565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff841661405d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f206164647265737300000000000000000000000000000000000000006044820152606401610fd8565b806140c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4e6f207469636b657420737065636966696564000000000000000000000000006044820152606401610fd8565b600854811115614130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f206d616e79207469636b657473000000000000000000000000000000006044820152606401610fd8565b60016000848152600f602052604090205460ff16600381111561417c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b146141e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4c6f7474657279206973206e6f74206f70656e000000000000000000000000006044820152606401610fd8565b6000838152600f6020526040902060020154421061425d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c6f7474657279206973206f76657200000000000000000000000000000000006044820152606401610fd8565b6000838152600f6020526040812060048101546003909101546142819190846146bd565b600d549091506142a99073ffffffffffffffffffffffffffffffffffffffff16863084613f05565b6000848152600f60205260408120601a0180548392906142ca908490615137565b90915550600090505b82811015614668576000848483818110614316577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061432b9190614e5e565b9050620f42408163ffffffff161015801561434f5750621e847f8163ffffffff1611155b6143b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4f7574736964652072616e6765000000000000000000000000000000000000006044820152606401610fd8565b6000868152601260205260408120906143cf600a846153bf565b6143da90600161514f565b63ffffffff168152602081019190915260400160009081208054916143fe83615362565b909155505060008681526012602052604081209061441d6064846153bf565b61442890600b61514f565b63ffffffff1681526020810191909152604001600090812080549161444c83615362565b909155505060008681526012602052604081209061446c6103e8846153bf565b61447790606f61514f565b63ffffffff1681526020810191909152604001600090812080549161449b83615362565b90915550506000868152601260205260408120906144bb612710846153bf565b6144c79061045761514f565b63ffffffff168152602081019190915260400160009081208054916144eb83615362565b909155505060008681526012602052604081209061450c620186a0846153bf565b61451890612b6761514f565b63ffffffff1681526020810191909152604001600090812080549161453c83615362565b909155505060008681526012602052604081209061455d620f4240846153bf565b61456a906201b20761514f565b63ffffffff1681526020810191909152604001600090812080549161458e83615362565b909155505073ffffffffffffffffffffffffffffffffffffffff80881660008181526013602090815260408083208b84528252808320600780548254600181018455928652848620909201919091558151808301835263ffffffff8089168252818501968752825486526010909452918420915182549551909616640100000000027fffffffffffffffff00000000000000000000000000000000000000000000000090951695909216949094179290921790925580549161464f83615362565b919050555050808061466090615362565b9150506142d3565b50604051828152849073ffffffffffffffffffffffffffffffffffffffff8716907fd7d247b583de1023852eef87b48f54354dbec771d01bc2cc49e96094efc322b99060200160405180910390a35050505050565b600083826146cc826001615137565b6146d691906152fa565b6146e084866152bd565b6146ea91906152bd565b610f459190615177565b6000614756826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166148009092919063ffffffff16565b805190915015613cfa57808060200190518101906147749190614c26565b613cfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610fd8565b6060610f4584846000858573ffffffffffffffffffffffffffffffffffffffff85163b614889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610fd8565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516148b29190614f65565b60006040518083038185875af1925050503d80600081146148ef576040519150601f19603f3d011682016040523d82523d6000602084013e6148f4565b606091505b509150915061490482828661490f565b979650505050505050565b6060831561491e575081610f48565b82511561492e5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd89190615023565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200161499a614a21565b8152602001600081526020016149ae614a21565b81526020016149bb614a21565b8152602001600081526020016000815260200160008152602001600063ffffffff1681525090565b8260068101928215614a11579160200282015b82811115614a115782518255916020019190600101906149f6565b50614a1d929150614a3f565b5090565b6040518060c001604052806006906020820280368337509192915050565b5b80821115614a1d5760008155600101614a40565b803573ffffffffffffffffffffffffffffffffffffffff81168114614a7857600080fd5b919050565b60008083601f840112614a8e578182fd5b50813567ffffffffffffffff811115614aa5578182fd5b6020830191508360208260051b850101111561175f57600080fd5b600060208284031215614ad1578081fd5b610f4882614a54565b60008060008060808587031215614aef578283fd5b614af885614a54565b9350614b0660208601614a54565b9250614b1460408601614a54565b9150614b2260608601614a54565b905092959194509250565b60008060408385031215614b3f578182fd5b614b4883614a54565b946020939093013593505050565b60008060008060608587031215614b6b578384fd5b614b7485614a54565b935060208501359250604085013567ffffffffffffffff811115614b96578283fd5b614ba287828801614a7d565b95989497509550505050565b60008060008060808587031215614bc3578384fd5b614bcc85614a54565b966020860135965060408601359560600135945092505050565b60008060208385031215614bf8578182fd5b823567ffffffffffffffff811115614c0e578283fd5b614c1a85828601614a7d565b90969095509350505050565b600060208284031215614c37578081fd5b8151610f4881615440565b600060208284031215614c53578081fd5b5035919050565b600060208284031215614c6b578081fd5b5051919050565b60008060408385031215614c84578182fd5b82359150614c9460208401614a54565b90509250929050565b600080600080600060608688031215614cb4578081fd5b85359450602086013567ffffffffffffffff80821115614cd2578283fd5b614cde89838a01614a7d565b90965094506040880135915080821115614cf6578283fd5b50614d0388828901614a7d565b969995985093965092949392505050565b600080600060408486031215614d28578283fd5b83359250602084013567ffffffffffffffff811115614d45578283fd5b614d5186828701614a7d565b9497909650939450505050565b60008060408385031215614d70578182fd5b823591506020830135614d8281615440565b809150509250929050565b60008060408385031215614d9f578182fd5b50508035926020909101359150565b600080600060608486031215614dc2578081fd5b505081359360208301359350604090920135919050565b60008060008060006101408688031215614df1578283fd5b853594506020860135935060408601359250610120860187811115614e14578182fd5b94979396509194606001933592915050565b600080600060608486031215614e3a578081fd5b83359250602084013591506040840135614e538161544e565b809150509250925092565b600060208284031215614e6f578081fd5b8135610f488161544e565b600060208284031215614e8b578081fd5b8151610f488161544e565b6000815180845260208085019450808401835b83811015614ec7578151151587529582019590820190600101614ea9565b509495945050505050565b8060005b6006811015613f63578151845260209384019390910190600101614ed6565b6000815180845260208085019450808401835b83811015614ec757815163ffffffff1687529582019590820190600101614f08565b60048110614f61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b60008251614f77818460208701615336565b9190910192915050565b6080808252855190820181905260009060209060a0840190828901845b82811015614fba57815184529284019290840190600101614f9e565b50505083810382850152614fce8188614ef5565b9150508281036040840152614fe38186614e96565b91505082606083015295945050505050565b6040815260006150086040830185614ef5565b828103602084015261501a8185614e96565b95945050505050565b6020815260008251806020840152615042816040850160208701615336565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600061038082019050615088828451614f2a565b6020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516150c260a0840182614ed2565b5060c0830151610160818185015260e085015191506101806150e681860184614ed2565b61010086015192506150fc610240860184614ed2565b6101208601516103008601526101408601516103208601529085015161034085015284015163ffffffff811661036085015290505092915050565b6000821982111561514a5761514a6153e2565b500190565b600063ffffffff80831681851680830382111561516e5761516e6153e2565b01949350505050565b60008261518657615186615411565b500490565b60018163ffffffff825b808611156151c9578282048311156151af576151af6153e2565b808616156151bc57928202925b94851c9491800291615195565b50509250929050565b600063ffffffff6151e78185168285166151ef565b949350505050565b6000826151fe575060016152b7565b8161520b575060006152b7565b8160018114615221576002811461522b5761525c565b60019150506152b7565b60ff84111561523c5761523c6153e2565b6001841b915063ffffffff821115615256576152566153e2565b506152b7565b5060208310610133831016604e8410600b8410161715615293575081810a63ffffffff81111561528e5761528e6153e2565b6152b7565b61529d838361518b565b8063ffffffff048211156152b3576152b36153e2565b0290505b92915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156152f5576152f56153e2565b500290565b60008282101561530c5761530c6153e2565b500390565b600063ffffffff8381169083168181101561532e5761532e6153e2565b039392505050565b60005b83811015615351578181015183820152602001615339565b83811115613f635750506000910152565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615394576153946153e2565b5060010190565b600063ffffffff808316818114156153b5576153b56153e2565b6001019392505050565b600063ffffffff808416806153d6576153d6615411565b92169190910692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8015158114610cef57600080fd5b63ffffffff81168114610cef57600080fdfea2646970667358221220ffcd30bdd4fab170138e1fece72e159570586a3818ca754ac4e9bd7a1d4343db64736f6c63430008040033000000000000000000000000208eecdbc49c137d0174b848def5f8cb74d6951e00000000000000000000000019ceccd6942ad38562ee10bafd44776ceb67e923

Deployed ByteCode

0x6080604052600436106102bf5760003560e01c80638da5cb5b1161016e578063c4937ab9116100cb578063e6fbc6cc1161007f578063e90386bf11610064578063e90386bf146107b9578063f2b3c809146107cf578063f2fde38b146107e557600080fd5b8063e6fbc6cc14610779578063e7b85f6c1461079957600080fd5b8063c8af6db5116100b0578063c8af6db51461072c578063c914914f14610759578063db19da0d1461053857600080fd5b8063c4937ab9146106df578063c5f956af146106ff57600080fd5b80639d8ca53111610122578063b1829b8211610107578063b1829b8214610689578063c306625d146106a9578063c38de539146106bf57600080fd5b80639d8ca53114610649578063b0d2eb741461065c57600080fd5b80638fc3539a116101535780638fc3539a146105ce57806398359fa1146105fc5780639c3846531461061c57600080fd5b80638da5cb5b146105835780638eec73e0146105ae57600080fd5b80633cb4e7a11161021c5780636be4097c116101d05780637cb583bd116101b55780637cb583bd1461053857806380a061601461054e57806388303dbd1461056357600080fd5b80636be4097c1461050d578063715018a61461052357600080fd5b8063471aeab411610201578063471aeab4146104b7578063686465b8146104d75780636b873788146104ed57600080fd5b80633cb4e7a1146104815780633f138d4b1461049757600080fd5b8063127effb2116102735780631fe86c6b116102585780631fe86c6b1461041e5780632423807a146104345780632e530cae1461046157600080fd5b8063127effb2146103db57806312a9769d1461040857600080fd5b80630614117a116102a45780630614117a1461034f57806307fb5a9c14610366578063100a4dab1461038957600080fd5b806305531eeb146102cb57806305b2f86b1461030457600080fd5b366102c657005b600080fd5b3480156102d757600080fd5b506102eb6102e6366004614bae565b610805565b6040516102fb9493929190614f81565b60405180910390f35b34801561031057600080fd5b5061033f61031f366004614c72565b601460209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016102fb565b34801561035b57600080fd5b50610364610cb8565b005b34801561037257600080fd5b5061037b603c81565b6040519081526020016102fb565b34801561039557600080fd5b50600d546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102fb565b3480156103e757600080fd5b506003546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041457600080fd5b5061037b600b5481565b34801561042a57600080fd5b5061037b60085481565b34801561044057600080fd5b5061045461044f366004614c42565b610cf2565b6040516102fb9190615074565b34801561046d57600080fd5b5061037b61047c366004614e26565b610ea1565b34801561048d57600080fd5b5061037b600a5481565b3480156104a357600080fd5b506103646104b2366004614b2d565b610f4f565b3480156104c357600080fd5b506103646104d2366004614d8d565b611055565b3480156104e357600080fd5b5061037b60075481565b3480156104f957600080fd5b50610364610508366004614c42565b61122f565b34801561051957600080fd5b5061037b60065481565b34801561052f57600080fd5b506103646112a3565b34801561054457600080fd5b5061037b61012c81565b34801561055a57600080fd5b5060065461037b565b34801561056f57600080fd5b5061036461057e366004614d14565b6112b7565b34801561058f57600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff166103b6565b3480156105ba57600080fd5b506103646105c9366004614d8d565b611411565b3480156105da57600080fd5b506105ee6105e9366004614be6565b61148e565b6040516102fb929190614ff5565b34801561060857600080fd5b50610364610617366004614ac0565b611766565b34801561062857600080fd5b506002546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b610364610657366004614c42565b611985565b34801561066857600080fd5b50600e546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b34801561069557600080fd5b506103646106a4366004614dd9565b611d10565b3480156106b557600080fd5b5061037b600c5481565b3480156106cb57600080fd5b506103646106da366004614d5e565b612386565b3480156106eb57600080fd5b5061037b6106fa366004614dae565b612bdb565b34801561070b57600080fd5b506004546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b34801561073857600080fd5b506005546103b69073ffffffffffffffffffffffffffffffffffffffff1681565b34801561076557600080fd5b50610364610774366004614c9d565b612cbb565b34801561078557600080fd5b50610364610794366004614b56565b61352f565b3480156107a557600080fd5b506103646107b4366004614ada565b6137af565b3480156107c557600080fd5b5061037b60095481565b3480156107db57600080fd5b5061037b610bb881565b3480156107f157600080fd5b50610364610800366004614ac0565b613a6b565b73ffffffffffffffffffffffffffffffffffffffff841660009081526013602090815260408083208684529091528120546060918291829190859061084a88826152fa565b82111561085e5761085b88826152fa565b91505b60008267ffffffffffffffff8111156108a0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156108c9578160200160208202803683370190505b50905060008367ffffffffffffffff81111561090e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610937578160200160208202803683370190505b50905060008467ffffffffffffffff81111561097c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156109a5578160200160208202803683370190505b50905060005b85811015610c9257601360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e81526020019081526020016000208c82610a0f9190615137565b81548110610a46577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154848281518110610a8a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505060106000858381518110610ad3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151815260200190815260200160002060000160009054906101000a900463ffffffff16838281518110610b36577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff1681525050600073ffffffffffffffffffffffffffffffffffffffff1660106000868481518110610ba5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602090810291909101810151825281019190915260400160002054640100000000900473ffffffffffffffffffffffffffffffffffffffff161415610c34576001828281518110610c1f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91151560209283029190910190910152610c80565b6000828281518110610c6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b911515602092830291909101909101525b80610c8a81615362565b9150506109ab565b50828282610ca0888f615137565b98509850985098505050505050945094509450949050565b610cc0613b1f565b478015610cef57610cef610ce960015473ffffffffffffffffffffffffffffffffffffffff1690565b82613ba0565b50565b610cfa614962565b6000828152600f60205260409081902081516101a081019092528054829060ff166003811115610d53577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811115610d8b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526001820154602082015260028201546040808301919091526003830154606083015260048301546080830152805160c081019182905260a09092019190600584019060069082845b815481526020019060010190808311610dd5575050509183525050600b82015460208201526040805160c081018252910190600c830160068282826020028201915b815481526020019060010190808311610e175750505091835250506040805160c081019182905260209092019190601284019060069082845b815481526020019060010190808311610e505750505091835250506018820154602082015260198201546040820152601a8201546060820152601b9091015463ffffffff1660809091015292915050565b600060036000858152600f602052604090205460ff166003811115610eef577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14610efc57506000610f48565b6000848152600f602052604090206019015483118015610f2d57506000848152600f60205260409020601801548311155b15610f3a57506000610f48565b610f45848484613cff565b90505b9392505050565b610f57613b1f565b600d5473ffffffffffffffffffffffffffffffffffffffff83811691161415610fe1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43616e6e6f74206265204d4a5420746f6b656e0000000000000000000000000060448201526064015b60405180910390fd5b61100273ffffffffffffffffffffffffffffffffffffffff83163383613e31565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527f74545154aac348a3eac92596bd1971957ca94795f4e954ec5f613b55fab78129910160405180910390a15050565b60015473ffffffffffffffffffffffffffffffffffffffff16331480611092575060025473ffffffffffffffffffffffffffffffffffffffff1633145b6110f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f7220696e6a6563746f7200000000000000000000006044820152606401610fd8565b60016000838152600f602052604090205460ff166003811115611144577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b146111ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c6f7474657279206e6f74206f70656e000000000000000000000000000000006044820152606401610fd8565b600d546111d09073ffffffffffffffffffffffffffffffffffffffff16333084613f05565b6000828152600f60205260408120601a0180548392906111f1908490615137565b909155505060405181815282907f1bbd659dd628a25f7ff2eabb69c74a56939c539728282275c1c9c1a2d3e340499060200160405180910390a25050565b611237613b1f565b8061129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4d757374206265203e20300000000000000000000000000000000000000000006044820152606401610fd8565b600855565b6112ab613b1f565b6112b56000613f69565b565b333b15611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436f6e7472616374206e6f7420616c6c6f7765640000000000000000000000006044820152606401610fd8565b333214611389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f50726f787920636f6e7472616374206e6f7420616c6c6f7765640000000000006044820152606401610fd8565b600260005414156113f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610fd8565b600260005561140733848484613fe0565b5050600160005550565b611419613b1f565b80821115611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d696e5072696365206d757374206265203c206d6178507269636500000000006044820152606401610fd8565b600a91909155600955565b6060808260008167ffffffffffffffff8111156114d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156114fd578160200160208202803683370190505b50905060008267ffffffffffffffff811115611542577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561156b578160200160208202803683370190505b50905060005b8381101561175757601060008989848181106115b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135815260200190815260200160002060000160009054906101000a900463ffffffff16838281518110611618577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b63ffffffff9092166020928302919091019091015260006010818a8a8581811061166b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020908102929092013583525081019190915260400160002054640100000000900473ffffffffffffffffffffffffffffffffffffffff1614156116f95760018282815181106116e4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91151560209283029190910190910152611745565b6000828281518110611734577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b911515602092830291909101909101525b8061174f81615362565b915050611571565b509093509150505b9250929050565b61176e613b1f565b60065415806117c9575060036006546000908152600f602052604090205460ff1660038111156117c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b145b61182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4c6f7474657279206e6f7420696e20636c61696d61626c6500000000000000006044820152606401610fd8565b60008173ffffffffffffffffffffffffffffffffffffffff16639938fd0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118af9190614c5a565b11611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f52616e646f6d2067656e657261746f72206572726f72000000000000000000006044820152606401610fd8565b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f383f8cb39dfa7c3fb901a460dd449ea924868f0a92ff03da64740fffa5f1de6290600090a250565b60035473ffffffffffffffffffffffffffffffffffffffff163314611a06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f74206f70657261746f7200000000000000000000000000000000000000006044820152606401610fd8565b60026000541415611a73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610fd8565b600260005560016000828152600f602052604090205460ff166003811115611ac4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611b2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c6f7474657279206e6f74206f70656e000000000000000000000000000000006044820152606401610fd8565b6000818152600f60205260409020600201544211611ba5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c6f7474657279206e6f74206f766572000000000000000000000000000000006044820152606401610fd8565b6007546000828152600f6020908152604080832060190193909355600e5483517f699b328a0000000000000000000000000000000000000000000000000000000081529351929373ffffffffffffffffffffffffffffffffffffffff9091169263699b328a9234926004808201939182900301818588803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c629190614c5a565b905034811015611c7f57611c7f33611c7a83346152fa565b613ba0565b43600c556000828152600f602052604090208054600291907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001830217905550600754600c54604080519283526020830184905282015282907f5ec5453262983f3767a4af859a84694c1436f21dc1e13f32ab833a4ec6bfb0799060600160405180910390a250506001600055565b60035473ffffffffffffffffffffffffffffffffffffffff163314611d91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f74206f70657261746f7200000000000000000000000000000000000000006044820152606401610fd8565b6006541580611dec575060036006546000908152600f602052604090205460ff166003811115611dea577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b145b611e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4e6f742074696d6520746f207374617274206c6f7474657279000000000000006044820152606401610fd8565b603c611e5e42876152fa565b118015611e75575061012c611e7342876152fa565b105b611edb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c6f7474657279206c656e677468206f757473696465206f662072616e6765006044820152606401610fd8565b600a548410158015611eef57506009548411155b611f55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4f757473696465206f66206c696d6974730000000000000000000000000000006044820152606401610fd8565b61012c831015611fc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f446973636f756e742064697669736f7220746f6f206c6f7700000000000000006044820152606401610fd8565b610bb881111561202d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f54726561737572792066656520746f6f206869676800000000000000000000006044820152606401610fd8565b60a082013560808301356060840135604085013561205060208701358735615137565b61205a9190615137565b6120649190615137565b61206e9190615137565b6120789190615137565b612710146120e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f52657761726473206d75737420657175616c20313030303000000000000000006044820152606401610fd8565b600680549060006120f283615362565b9091555050604080516101a0810190915280600181526020014281526020018681526020018581526020018481526020018360068060200260405190810160405280929190826006602002808284376000920182905250928452505060208083018590526040805160c080820183528482528184018590528183018590526060808301869052608080840187905260a080850188905285890194909452845180840186528781528087018890528086018890528083018890528082018890528085018890529188019190915260075490870181905291860191909152600b549085015260e09093018290526006548252600f9052208151815482907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600381111561224a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151600182015560408201516002820155606082015160038201556080820151600482015560a082015161228c90600583019060066149e3565b5060c0820151600b82015560e08201516122ac90600c83019060066149e3565b506101008201516122c390601283019060066149e3565b5061012082015160188201556101408201516019820155610160820151601a82015561018090910151601b90910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909216919091179055600654600754600b5460408051428152602081018a9052908101889052606081019290925260808201527f367e70f8c0e0c0a6504d92172bda155c02022d532fc85b5d66a9c49e31c8bc779060a00160405180910390a250506000600b55505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314612407576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f74206f70657261746f7200000000000000000000000000000000000000006044820152606401610fd8565b60026000541415612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610fd8565b60026000818155838152600f602052604090205460ff1660038111156124c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461252a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4c6f7474657279206e6f7420636c6f73650000000000000000000000000000006044820152606401610fd8565b600e54600c546040517f9bc86fec00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691639bc86fec916125859160040190815260200190565b60206040518083038186803b15801561259d57600080fd5b505afa1580156125b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d59190614c26565b61263b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e756d62657273206e6f7420647261776e0000000000000000000000000000006044820152606401610fd8565b600e54600c546040517f24cbbfc100000000000000000000000000000000000000000000000000000000815263ffffffff60048201526000602482018190526044820192909252909173ffffffffffffffffffffffffffffffffffffffff16906324cbbfc19060640160206040518083038186803b1580156126bc57600080fd5b505afa1580156126d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f49190614e7a565b9050612703620f4240826153bf565b61271090620f424061514f565b6000848152600f60205260408120600b01549192509081906127109061273690826152fa565b6000878152600f60205260409020601a015461275291906152bd565b61275c9190615177565b90506000805b60068163ffffffff161015612ac057600061277e826005615311565b9050600061278d82600161514f565b61279890600a6151d2565b6127a290886153bf565b63ffffffff8084166000908152601160205260409020546127c492911661514f565b60008a815260126020908152604080832063ffffffff851684529091529020549091506127f29087906152fa565b60008a8152600f6020526040902060120163ffffffff841660068110612841577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0155600089815260126020908152604080832063ffffffff8516845290915290205461286e9087906152fa565b156129e2576000898152600f6020526040902060050163ffffffff8316600681106128c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154156129dd57600089815260126020908152604080832063ffffffff85168452909152902054612710906128f89088906152fa565b60008b8152600f60205260409020879060050163ffffffff861660068110612949577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461295591906152bd565b61295f9190615177565b6129699190615177565b60008a8152600f60205260409020600c0163ffffffff8416600681106129b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0155600089815260126020908152604080832063ffffffff8516845290915290205495505b612aab565b6000898152600f60205260408120600c0163ffffffff841660068110612a31577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b01556000898152600f6020526040902061271090869060050163ffffffff851660068110612a88577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154612a9491906152bd565b612a9e9190615177565b612aa89085615137565b93505b50508080612ab89061539b565b915050612762565b506000868152600f60205260409020601b8101805463ffffffff87167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090911617905580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660031790558415612b3857600b5560005b6000868152600f60205260409020601a0154612b559083906152fa565b612b5f9082615137565b600454600d54919250612b8c9173ffffffffffffffffffffffffffffffffffffffff908116911683613e31565b6006546040805163ffffffff87168152602081018690527f98e31a6607b8b15b4d5b91de54f4c09ffe4c4cf162aa532c70b5213754e2e703910160405180910390a25050600160005550505050565b600061012c841015612c49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d757374206265203e3d204d494e5f444953434f554e545f44495649534f52006044820152606401610fd8565b81612cb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4e756d626572206f66207469636b657473206d757374206265203e20300000006044820152606401610fd8565b610f458484846146bd565b333b15612d24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436f6e7472616374206e6f7420616c6c6f7765640000000000000000000000006044820152606401610fd8565b333214612d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f50726f787920636f6e7472616374206e6f7420616c6c6f7765640000000000006044820152606401610fd8565b60026000541415612dfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610fd8565b6002600055828114612e68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742073616d65206c656e67746800000000000000000000000000000000006044820152606401610fd8565b82612ecf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4c656e677468206d757374206265203e300000000000000000000000000000006044820152606401610fd8565b600854831115612f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f206d616e79207469636b657473000000000000000000000000000000006044820152606401610fd8565b60036000868152600f602052604090205460ff166003811115612f87577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14612fee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4c6f7474657279206e6f7420636c61696d61626c6500000000000000000000006044820152606401610fd8565b6000805b848110156134c0576006848483818110613035577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061304a9190614e5e565b63ffffffff16106130b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f427261636b6574206f7574206f662072616e67650000000000000000000000006044820152606401610fd8565b60008686838181106130f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135905080600f60008a8152602001908152602001600020601901541161317a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5469636b6574496420746f6f20686967680000000000000000000000000000006044820152606401610fd8565b6000888152600f60205260409020601801548110156131f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5469636b6574496420746f6f206c6f77000000000000000000000000000000006044820152606401610fd8565b600081815260106020526040902054640100000000900473ffffffffffffffffffffffffffffffffffffffff16331461328a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f7420746865206f776e6572000000000000000000000000000000000000006044820152606401610fd8565b600081815260106020526040812080547fffffffffffffffff0000000000000000000000000000000000000000ffffffff16905561331689838888878181106132fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906133119190614e5e565b613cff565b90508061337f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4e6f207072697a6520666f72207468697320627261636b6574000000000000006044820152606401610fd8565b8585848181106133b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906133cd9190614e5e565b63ffffffff1660051461349f576134388983888887818110613418577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061342d9190614e5e565b61331190600161514f565b1561349f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f427261636b6574206d75737420626520686967686572000000000000000000006044820152606401610fd8565b6134a98185615137565b9350505080806134b890615362565b915050612ff2565b50600d546134e59073ffffffffffffffffffffffffffffffffffffffff163383613e31565b6040805182815260208101869052879133917f0f5fca62da8fb5d95525b49e5eaa7b20bc6bd9e2f6b64b493442d1c0bd6ef486910160405180910390a35050600160005550505050565b60055473ffffffffffffffffffffffffffffffffffffffff1633146135b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f4e6f7420626f74000000000000000000000000000000000000000000000000006044820152606401610fd8565b600083815260146020908152604080832073ffffffffffffffffffffffffffffffffffffffff8816845290915290205460ff161561364a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4175746f20627579207461736b206861732066696e69736865640000000000006044820152606401610fd8565b600083815260146020908152604080832073ffffffffffffffffffffffffffffffffffffffff8881168086529190935281842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d5491517f70a0823100000000000000000000000000000000000000000000000000000000815260048101919091529116906370a082319060240160206040518083038186803b1580156136fa57600080fd5b505afa15801561370e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137329190614c5a565b905061374085858585613fe0565b838573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fbf05a216b1c4cf8d87decac539fee4a6bb2ce137cc186c5e73451d2081dbd473846040516137a091815260200190565b60405180910390a45050505050565b6137b7613b1f565b73ffffffffffffffffffffffffffffffffffffffff8416613834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f2061646472657373000000000000000000006044820152606401610fd8565b73ffffffffffffffffffffffffffffffffffffffff83166138b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f2061646472657373000000000000000000006044820152606401610fd8565b73ffffffffffffffffffffffffffffffffffffffff821661392e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f2061646472657373000000000000000000006044820152606401610fd8565b73ffffffffffffffffffffffffffffffffffffffff81166139ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f2061646472657373000000000000000000006044820152606401610fd8565b6003805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff000000000000000000000000000000000000000092831681179093556004805487831690841681179091556002805487841690851681179091556005805493871693909416831790935560408051948552602085019190915283019190915260608201527ffaa5a6d898018caa25925a386a8fbac436351bde8b2aa41e5e59d05138e721b09060800160405180910390a150505050565b613a73613b1f565b73ffffffffffffffffffffffffffffffffffffffff8116613b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610fd8565b610cef81613f69565b60015473ffffffffffffffffffffffffffffffffffffffff1633146112b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fd8565b80471015613c0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610fd8565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5050905080613cfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610fd8565b505050565b6000838152600f60209081526040808320601b0154858452601090925282205463ffffffff918216911682613d3585600161514f565b613d4090600a6151d2565b613d4a90846153bf565b63ffffffff808716600090815260116020526040902054613d6c92911661514f565b90506000613d7b86600161514f565b613d8690600a6151d2565b613d9090846153bf565b63ffffffff808816600090815260116020526040902054613db292911661514f565b90508063ffffffff168263ffffffff161415613e24576000888152600f60205260409020600c0163ffffffff871660068110613e17577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154945050505050610f48565b6000945050505050610f48565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052613cfa9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526146f4565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052613f639085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401613e83565b50505050565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff841661405d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f206164647265737300000000000000000000000000000000000000006044820152606401610fd8565b806140c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4e6f207469636b657420737065636966696564000000000000000000000000006044820152606401610fd8565b600854811115614130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f206d616e79207469636b657473000000000000000000000000000000006044820152606401610fd8565b60016000848152600f602052604090205460ff16600381111561417c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b146141e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4c6f7474657279206973206e6f74206f70656e000000000000000000000000006044820152606401610fd8565b6000838152600f6020526040902060020154421061425d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c6f7474657279206973206f76657200000000000000000000000000000000006044820152606401610fd8565b6000838152600f6020526040812060048101546003909101546142819190846146bd565b600d549091506142a99073ffffffffffffffffffffffffffffffffffffffff16863084613f05565b6000848152600f60205260408120601a0180548392906142ca908490615137565b90915550600090505b82811015614668576000848483818110614316577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061432b9190614e5e565b9050620f42408163ffffffff161015801561434f5750621e847f8163ffffffff1611155b6143b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4f7574736964652072616e6765000000000000000000000000000000000000006044820152606401610fd8565b6000868152601260205260408120906143cf600a846153bf565b6143da90600161514f565b63ffffffff168152602081019190915260400160009081208054916143fe83615362565b909155505060008681526012602052604081209061441d6064846153bf565b61442890600b61514f565b63ffffffff1681526020810191909152604001600090812080549161444c83615362565b909155505060008681526012602052604081209061446c6103e8846153bf565b61447790606f61514f565b63ffffffff1681526020810191909152604001600090812080549161449b83615362565b90915550506000868152601260205260408120906144bb612710846153bf565b6144c79061045761514f565b63ffffffff168152602081019190915260400160009081208054916144eb83615362565b909155505060008681526012602052604081209061450c620186a0846153bf565b61451890612b6761514f565b63ffffffff1681526020810191909152604001600090812080549161453c83615362565b909155505060008681526012602052604081209061455d620f4240846153bf565b61456a906201b20761514f565b63ffffffff1681526020810191909152604001600090812080549161458e83615362565b909155505073ffffffffffffffffffffffffffffffffffffffff80881660008181526013602090815260408083208b84528252808320600780548254600181018455928652848620909201919091558151808301835263ffffffff8089168252818501968752825486526010909452918420915182549551909616640100000000027fffffffffffffffff00000000000000000000000000000000000000000000000090951695909216949094179290921790925580549161464f83615362565b919050555050808061466090615362565b9150506142d3565b50604051828152849073ffffffffffffffffffffffffffffffffffffffff8716907fd7d247b583de1023852eef87b48f54354dbec771d01bc2cc49e96094efc322b99060200160405180910390a35050505050565b600083826146cc826001615137565b6146d691906152fa565b6146e084866152bd565b6146ea91906152bd565b610f459190615177565b6000614756826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166148009092919063ffffffff16565b805190915015613cfa57808060200190518101906147749190614c26565b613cfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610fd8565b6060610f4584846000858573ffffffffffffffffffffffffffffffffffffffff85163b614889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610fd8565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516148b29190614f65565b60006040518083038185875af1925050503d80600081146148ef576040519150601f19603f3d011682016040523d82523d6000602084013e6148f4565b606091505b509150915061490482828661490f565b979650505050505050565b6060831561491e575081610f48565b82511561492e5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd89190615023565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200161499a614a21565b8152602001600081526020016149ae614a21565b81526020016149bb614a21565b8152602001600081526020016000815260200160008152602001600063ffffffff1681525090565b8260068101928215614a11579160200282015b82811115614a115782518255916020019190600101906149f6565b50614a1d929150614a3f565b5090565b6040518060c001604052806006906020820280368337509192915050565b5b80821115614a1d5760008155600101614a40565b803573ffffffffffffffffffffffffffffffffffffffff81168114614a7857600080fd5b919050565b60008083601f840112614a8e578182fd5b50813567ffffffffffffffff811115614aa5578182fd5b6020830191508360208260051b850101111561175f57600080fd5b600060208284031215614ad1578081fd5b610f4882614a54565b60008060008060808587031215614aef578283fd5b614af885614a54565b9350614b0660208601614a54565b9250614b1460408601614a54565b9150614b2260608601614a54565b905092959194509250565b60008060408385031215614b3f578182fd5b614b4883614a54565b946020939093013593505050565b60008060008060608587031215614b6b578384fd5b614b7485614a54565b935060208501359250604085013567ffffffffffffffff811115614b96578283fd5b614ba287828801614a7d565b95989497509550505050565b60008060008060808587031215614bc3578384fd5b614bcc85614a54565b966020860135965060408601359560600135945092505050565b60008060208385031215614bf8578182fd5b823567ffffffffffffffff811115614c0e578283fd5b614c1a85828601614a7d565b90969095509350505050565b600060208284031215614c37578081fd5b8151610f4881615440565b600060208284031215614c53578081fd5b5035919050565b600060208284031215614c6b578081fd5b5051919050565b60008060408385031215614c84578182fd5b82359150614c9460208401614a54565b90509250929050565b600080600080600060608688031215614cb4578081fd5b85359450602086013567ffffffffffffffff80821115614cd2578283fd5b614cde89838a01614a7d565b90965094506040880135915080821115614cf6578283fd5b50614d0388828901614a7d565b969995985093965092949392505050565b600080600060408486031215614d28578283fd5b83359250602084013567ffffffffffffffff811115614d45578283fd5b614d5186828701614a7d565b9497909650939450505050565b60008060408385031215614d70578182fd5b823591506020830135614d8281615440565b809150509250929050565b60008060408385031215614d9f578182fd5b50508035926020909101359150565b600080600060608486031215614dc2578081fd5b505081359360208301359350604090920135919050565b60008060008060006101408688031215614df1578283fd5b853594506020860135935060408601359250610120860187811115614e14578182fd5b94979396509194606001933592915050565b600080600060608486031215614e3a578081fd5b83359250602084013591506040840135614e538161544e565b809150509250925092565b600060208284031215614e6f578081fd5b8135610f488161544e565b600060208284031215614e8b578081fd5b8151610f488161544e565b6000815180845260208085019450808401835b83811015614ec7578151151587529582019590820190600101614ea9565b509495945050505050565b8060005b6006811015613f63578151845260209384019390910190600101614ed6565b6000815180845260208085019450808401835b83811015614ec757815163ffffffff1687529582019590820190600101614f08565b60048110614f61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b60008251614f77818460208701615336565b9190910192915050565b6080808252855190820181905260009060209060a0840190828901845b82811015614fba57815184529284019290840190600101614f9e565b50505083810382850152614fce8188614ef5565b9150508281036040840152614fe38186614e96565b91505082606083015295945050505050565b6040815260006150086040830185614ef5565b828103602084015261501a8185614e96565b95945050505050565b6020815260008251806020840152615042816040850160208701615336565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600061038082019050615088828451614f2a565b6020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516150c260a0840182614ed2565b5060c0830151610160818185015260e085015191506101806150e681860184614ed2565b61010086015192506150fc610240860184614ed2565b6101208601516103008601526101408601516103208601529085015161034085015284015163ffffffff811661036085015290505092915050565b6000821982111561514a5761514a6153e2565b500190565b600063ffffffff80831681851680830382111561516e5761516e6153e2565b01949350505050565b60008261518657615186615411565b500490565b60018163ffffffff825b808611156151c9578282048311156151af576151af6153e2565b808616156151bc57928202925b94851c9491800291615195565b50509250929050565b600063ffffffff6151e78185168285166151ef565b949350505050565b6000826151fe575060016152b7565b8161520b575060006152b7565b8160018114615221576002811461522b5761525c565b60019150506152b7565b60ff84111561523c5761523c6153e2565b6001841b915063ffffffff821115615256576152566153e2565b506152b7565b5060208310610133831016604e8410600b8410161715615293575081810a63ffffffff81111561528e5761528e6153e2565b6152b7565b61529d838361518b565b8063ffffffff048211156152b3576152b36153e2565b0290505b92915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156152f5576152f56153e2565b500290565b60008282101561530c5761530c6153e2565b500390565b600063ffffffff8381169083168181101561532e5761532e6153e2565b039392505050565b60005b83811015615351578181015183820152602001615339565b83811115613f635750506000910152565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615394576153946153e2565b5060010190565b600063ffffffff808316818114156153b5576153b56153e2565b6001019392505050565b600063ffffffff808416806153d6576153d6615411565b92169190910692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8015158114610cef57600080fd5b63ffffffff81168114610cef57600080fdfea2646970667358221220ffcd30bdd4fab170138e1fece72e159570586a3818ca754ac4e9bd7a1d4343db64736f6c63430008040033