[ { "inputs": [ { "internalType": "address[]", "name": "_components", "type": "address[]" }, { "internalType": "int256[]", "name": "_units", "type": "int256[]" }, { "internalType": "address[]", "name": "_modules", "type": "address[]" }, { "internalType": "contract IController", "name": "_controller", "type": "address" }, { "internalType": "address", "name": "_manager", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_component", "type": "address" } ], "name": "ComponentAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_component", "type": "address" } ], "name": "ComponentRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_component", "type": "address" }, { "indexed": false, "internalType": "int256", "name": "_realUnit", "type": "int256" } ], "name": "DefaultPositionUnitEdited", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_component", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_positionModule", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "ExternalPositionDataEdited", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_component", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_positionModule", "type": "address" }, { "indexed": false, "internalType": "int256", "name": "_realUnit", "type": "int256" } ], "name": "ExternalPositionUnitEdited", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_target", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "_value", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "_data", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "_returnValue", "type": "bytes" } ], "name": "Invoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_newManager", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_oldManager", "type": "address" } ], "name": "ManagerEdited", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_module", "type": "address" } ], "name": "ModuleAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_module", "type": "address" } ], "name": "ModuleInitialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_module", "type": "address" } ], "name": "ModuleRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_module", "type": "address" } ], "name": "PendingModuleRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_component", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_positionModule", "type": "address" } ], "name": "PositionModuleAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_component", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_positionModule", "type": "address" } ], "name": "PositionModuleRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "int256", "name": "_newMultiplier", "type": "int256" } ], "name": "PositionMultiplierEdited", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" } ], "name": "addComponent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" }, { "internalType": "address", "name": "_positionModule", "type": "address" } ], "name": "addExternalPositionModule", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_module", "type": "address" } ], "name": "addModule", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_quantity", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "components", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "controller", "outputs": [ { "internalType": "contract IController", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" }, { "internalType": "int256", "name": "_realUnit", "type": "int256" } ], "name": "editDefaultPositionUnit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" }, { "internalType": "address", "name": "_positionModule", "type": "address" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "editExternalPositionData", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" }, { "internalType": "address", "name": "_positionModule", "type": "address" }, { "internalType": "int256", "name": "_realUnit", "type": "int256" } ], "name": "editExternalPositionUnit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "int256", "name": "_newMultiplier", "type": "int256" } ], "name": "editPositionMultiplier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getComponents", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" } ], "name": "getDefaultPositionRealUnit", "outputs": [ { "internalType": "int256", "name": "", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" }, { "internalType": "address", "name": "_positionModule", "type": "address" } ], "name": "getExternalPositionData", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" } ], "name": "getExternalPositionModules", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" }, { "internalType": "address", "name": "_positionModule", "type": "address" } ], "name": "getExternalPositionRealUnit", "outputs": [ { "internalType": "int256", "name": "", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getModules", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPositions", "outputs": [ { "components": [ { "internalType": "address", "name": "component", "type": "address" }, { "internalType": "address", "name": "module", "type": "address" }, { "internalType": "int256", "name": "unit", "type": "int256" }, { "internalType": "uint8", "name": "positionState", "type": "uint8" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct ISetToken.Position[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" } ], "name": "getTotalComponentRealUnits", "outputs": [ { "internalType": "int256", "name": "", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initializeModule", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "invoke", "outputs": [ { "internalType": "bytes", "name": "_returnValue", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" } ], "name": "isComponent", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" }, { "internalType": "address", "name": "_module", "type": "address" } ], "name": "isExternalPositionModule", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_module", "type": "address" } ], "name": "isInitializedModule", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isLocked", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_module", "type": "address" } ], "name": "isPendingModule", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "locker", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "moduleStates", "outputs": [ { "internalType": "enum ISetToken.ModuleState", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "modules", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "positionMultiplier", "outputs": [ { "internalType": "int256", "name": "", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" } ], "name": "removeComponent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_component", "type": "address" }, { "internalType": "address", "name": "_positionModule", "type": "address" } ], "name": "removeExternalPositionModule", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_module", "type": "address" } ], "name": "removeModule", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_module", "type": "address" } ], "name": "removePendingModule", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_manager", "type": "address" } ], "name": "setManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unlock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b5060405162003c7338038062003c73833981016040819052620000349162000476565b8151829082906200004d906003906020850190620001bf565b50805162000063906004906020840190620001bf565b505060058054601260ff1990911617610100600160a81b0319166101006001600160a01b038881169190910291909117909155600680546001600160a01b03191691861691909117905550620000c4620001b2602090811b62001a6d17901c565b600d558651620000dc90600b9060208a019062000244565b5060005b85518110156200014357600160096000888481518110620000fd57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191660018360028111156200013557fe5b0217905550600101620000e0565b5060005b8751811015620001a4578681815181106200015e57fe5b6020026020010151600c60008a84815181106200017757fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205560010162000147565b5050505050505050620005d8565b670de0b6b3a76400005b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020257805160ff191683800117855562000232565b8280016001018555821562000232579182015b828111156200023257825182559160200191906001019062000215565b5062000240929150620002aa565b5090565b8280548282559060005260206000209081019282156200029c579160200282015b828111156200029c57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000265565b5062000240929150620002c7565b620001bc91905b80821115620002405760008155600101620002b1565b620001bc91905b80821115620002405780546001600160a01b0319168155600101620002ce565b8051620002fb81620005bf565b92915050565b600082601f83011262000312578081fd5b81516200032962000323826200059f565b62000578565b8181529150602080830190848101818402860182018710156200034b57600080fd5b60005b84811015620003775781516200036481620005bf565b845292820192908201906001016200034e565b505050505092915050565b600082601f83011262000393578081fd5b8151620003a462000323826200059f565b818152915060208083019084810181840286018201871015620003c657600080fd5b60005b848110156200037757815184529282019290820190600101620003c9565b600082601f830112620003f8578081fd5b81516001600160401b038111156200040e578182fd5b602062000424601f8301601f1916820162000578565b925081835284818386010111156200043b57600080fd5b60005b828110156200045b5784810182015184820183015281016200043e565b828111156200046d5760008284860101525b50505092915050565b600080600080600080600060e0888a03121562000491578283fd5b87516001600160401b0380821115620004a8578485fd5b620004b68b838c0162000301565b985060208a0151915080821115620004cc578485fd5b620004da8b838c0162000382565b975060408a0151915080821115620004f0578485fd5b620004fe8b838c0162000301565b96506200050f8b60608c01620002ee565b9550620005208b60808c01620002ee565b945060a08a015191508082111562000536578384fd5b620005448b838c01620003e7565b935060c08a01519150808211156200055a578283fd5b50620005698a828b01620003e7565b91505092959891949750929550565b6040518181016001600160401b03811182821017156200059757600080fd5b604052919050565b60006001600160401b03821115620005b5578081fd5b5060209081020190565b6001600160a01b0381168114620005d557600080fd5b50565b61368b80620005e86000396000f3fe6080604052600436106102b25760003560e01c80638ae458da11610175578063b2494df3116100dc578063d7f1b27c11610095578063ea0ee5591161006f578063ea0ee55914610842578063eaf993e114610862578063f77c479114610882578063f83d08ba14610897576102b9565b8063d7f1b27c146107e2578063dd62ed3e14610802578063df5e9b2914610822576102b9565b8063b2494df314610738578063c2de0e9d1461074d578063c5d574fe1461076d578063c75640171461078d578063d0ebdbe7146107ad578063d7b96d4e146107cd576102b9565b8063a457c2d71161012e578063a457c2d71461068e578063a4e2d634146106ae578063a69df4b5146106c3578063a7bdad03146106d8578063a9059cbb146106f8578063acf3f07714610718576102b9565b80638ae458da146105d75780638f6f0332146105f757806395d89b411461061757806399d50d5d1461062c5780639dc29fac1461064e578063a06324611461066e576102b9565b806340c10f191161021957806366cb8d2f116101d257806366cb8d2f146105155780636f86c8971461053557806370a08231146105555780637d96659314610575578063802758601461059557806381b2248a146105b7576102b9565b806340c10f191461045e578063481c6a751461047e5780634e353270146104a05780635230c396146104c057806353bae5f7146104d557806363a90fc1146104f5576102b9565b806323b872dd1161026b57806323b872dd1461038f57806326898fe1146103af5780632ba57d17146103cf578063313ce567146103ef57806335bc4e5214610411578063395093511461043e576102b9565b806306fdde03146102be578063095ea7b3146102e95780630ffe0f1e1461031657806318160ddd1461032d5780631ed86f191461034f57806322ebeba41461036f576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d36108ac565b6040516102e09190612db5565b60405180910390f35b3480156102f557600080fd5b50610309610304366004612b31565b610943565b6040516102e09190612d66565b34801561032257600080fd5b5061032b610961565b005b34801561033957600080fd5b50610342610a4b565b6040516102e09190612ddc565b34801561035b57600080fd5b5061032b61036a366004612a02565b610a51565b34801561037b57600080fd5b5061034261038a366004612a1d565b610b89565b34801561039b57600080fd5b506103096103aa366004612af1565b610ba4565b3480156103bb57600080fd5b5061032b6103ca366004612a51565b610c31565b3480156103db57600080fd5b5061032b6103ea366004612b31565b610ccc565b3480156103fb57600080fd5b50610404610d43565b6040516102e09190613548565b34801561041d57600080fd5b5061043161042c366004612a02565b610d4c565b6040516102e09190612dc8565b34801561044a57600080fd5b50610309610459366004612b31565b610d61565b34801561046a57600080fd5b5061032b610479366004612b31565b610db5565b34801561048a57600080fd5b50610493610dd3565b6040516102e09190612c47565b3480156104ac57600080fd5b5061032b6104bb366004612a02565b610de2565b3480156104cc57600080fd5b50610342610e90565b3480156104e157600080fd5b506103096104f0366004612a02565b610e96565b34801561050157600080fd5b5061032b610510366004612ab4565b610ec9565b34801561052157600080fd5b50610342610530366004612a02565b610f48565b34801561054157600080fd5b5061032b610550366004612a02565b610f56565b34801561056157600080fd5b50610342610570366004612a02565b610fae565b34801561058157600080fd5b50610309610590366004612a1d565b610fc9565b3480156105a157600080fd5b506105aa610fe4565b6040516102e09190612cc2565b3480156105c357600080fd5b506104936105d2366004612bbd565b6111a1565b3480156105e357600080fd5b506102d36105f2366004612a1d565b6111c8565b34801561060357600080fd5b506102d3610612366004612b5b565b6111d4565b34801561062357600080fd5b506102d3611281565b34801561063857600080fd5b506106416112e2565b6040516102e09190612c75565b34801561065a57600080fd5b5061032b610669366004612b31565b611343565b34801561067a57600080fd5b5061032b610689366004612a02565b61135d565b34801561069a57600080fd5b506103096106a9366004612b31565b611483565b3480156106ba57600080fd5b506103096114f1565b3480156106cf57600080fd5b5061032b6114fa565b3480156106e457600080fd5b506106416106f3366004612a02565b61156a565b34801561070457600080fd5b50610309610713366004612b31565b611575565b34801561072457600080fd5b5061032b610733366004612a1d565b611589565b34801561074457600080fd5b50610641611646565b34801561075957600080fd5b5061032b610768366004612bbd565b6116a6565b34801561077957600080fd5b50610493610788366004612bbd565b6116ff565b34801561079957600080fd5b5061032b6107a8366004612a02565b61170c565b3480156107b957600080fd5b5061032b6107c8366004612a02565b6117c6565b3480156107d957600080fd5b50610493611850565b3480156107ee57600080fd5b506103096107fd366004612a02565b61185f565b34801561080e57600080fd5b5061034261081d366004612a1d565b611868565b34801561082e57600080fd5b5061030961083d366004612a02565b611893565b34801561084e57600080fd5b5061032b61085d366004612a1d565b611902565b34801561086e57600080fd5b5061034261087d366004612a02565b6119a6565b34801561088e57600080fd5b50610493611a0d565b3480156108a357600080fd5b5061032b611a21565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109385780601f1061090d57610100808354040283529160200191610938565b820191906000526020600020905b81548152906001019060200180831161091b57829003601f168201915b505050505090505b90565b6000610957610950611a79565b8484611a7d565b5060015b92915050565b600a5460ff161561098d5760405162461bcd60e51b815260040161098490613427565b60405180910390fd5b60013360009081526009602052604090205460ff1660028111156109ad57fe5b146109ca5760405162461bcd60e51b8152600401610984906134b7565b33600081815260096020526040808220805460ff19166002179055600880546001810182559083527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b03191684179055517f27b541a16df0902e262f34789782092ab25125513b8ed73608e802951771b9289190a2565b60025490565b610a59611b31565b6001600160a01b03811660009081526009602052604081205460ff166002811115610a8057fe5b14610a9d5760405162461bcd60e51b815260040161098490612eb1565b6005546040516342f6e38960e01b81526101009091046001600160a01b0316906342f6e38990610ad1908490600401612c47565b60206040518083038186803b158015610ae957600080fd5b505afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b219190612b9d565b610b3d5760405162461bcd60e51b81526004016109849061316e565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517fead6a006345da1073a106d5f32372d2d2204f46cb0b4bca8f5ebafcbbed12b8a9190a250565b6000610b9d610b988484611b5d565b611b8c565b9392505050565b6000610bb1848484611ba3565b610c2784610bbd611a79565b610c2285604051806060016040528060288152602001613609602891396001600160a01b038a16600090815260016020526040812090610bfb611a79565b6001600160a01b03168152602081019190915260400160002054919063ffffffff611cc416565b611a7d565b5060019392505050565b610c39611cf0565b610c41611dcd565b6001600160a01b038085166000908152600c6020908152604080832093871683526002909301905220610c7890600101838361288c565b50826001600160a01b0316846001600160a01b03167fb373eedb8e9038a2dcba31f06b2735887c1a904125e5c9f0021ba41ed972318e8484604051610cbe929190612d71565b60405180910390a350505050565b610cd4611cf0565b610cdc611dcd565b6000610ce782611e02565b6001600160a01b0384166000818152600c60205260409081902083905551919250907f8133e2bf34edab764b55c59d1d41f9df637e7c22828bb6b0a9d55b429d008a9790610d36908590612ddc565b60405180910390a2505050565b60055460ff1690565b60096020526000908152604090205460ff1681565b6000610957610d6e611a79565b84610c228560016000610d7f611a79565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff611e4716565b610dbd611cf0565b610dc5611dcd565b610dcf8282611e6c565b5050565b6006546001600160a01b031681565b610dea611cf0565b610df2611dcd565b610dfb81611893565b15610e185760405162461bcd60e51b81526004016109849061313f565b600b805460018101825560009182527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b03841690811790915560405190917f76da6cf8b40dd2b2c223a5956831e0ff4e75522538a86782108a0bbe1577e29891a250565b600d5481565b600060015b6001600160a01b03831660009081526009602052604090205460ff166002811115610ec257fe5b1492915050565b610ed1611cf0565b610ed9611dcd565b6000610ee482611e02565b6001600160a01b038086166000818152600c602090815260408083209489168084526002909501909152908190208490555192935090917f81a422e27f503e1b92cdb616a6e653aac10a8e0c3fa6832a58dc616c080fd7bd90610cbe908690612ddc565b600061095b610b9883611f38565b610f5e611cf0565b610f66611dcd565b610f77600b8263ffffffff611f5316565b6040516001600160a01b038216907fc605d0bf97f9b921340106a2e59f9428d5eb9039b16866159e0cdd2bf8e963df90600090a250565b6001600160a01b031660009081526020819052604090205490565b6000610b9d82610fd885612080565b9063ffffffff6120f916565b606080610fef61210f565b67ffffffffffffffff8111801561100557600080fd5b5060405190808252806020026020018201604052801561103f57816020015b61102c612906565b8152602001906001900390816110245790505b5090506000805b600b54811015611199576000600b828154811061105f57fe5b60009182526020822001546001600160a01b0316915061107e82611f38565b13156110ed576040805160a0810182526001600160a01b0383168152600060208201529081016110ad83610f48565b8152602001600060ff168152602001604051806020016040528060008152508152508484815181106110db57fe5b60209081029190910101526001909201915b60606110f882612080565b905060005b815181101561118e57600082828151811061111457fe5b602002602001015190506040518060a00160405280856001600160a01b03168152602001826001600160a01b031681526020016111518684610b89565b8152600160208201526040016111678684612194565b81525087878151811061117657fe5b602090810291909101015250600194850194016110fd565b505050600101611046565b509091505090565b600881815481106111ae57fe5b6000918252602090912001546001600160a01b0316905081565b6060610b9d8383612194565b60606111de611cf0565b6111e6611dcd565b61123183838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050506001600160a01b03881691905086612252565b905083856001600160a01b03167f2a936dbabeaea30adc1ddad138b1958497988474bef8b09a29411f0105ab8ab285858560405161127193929190612d85565b60405180910390a3949350505050565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109385780601f1061090d57610100808354040283529160200191610938565b6060600b80548060200260200160405190810160405280929190818152602001828054801561093857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161131c575050505050905090565b61134b611cf0565b611353611dcd565b610dcf8282612280565b611365611b31565b600a5460ff16156113885760405162461bcd60e51b815260040161098490613427565b60026001600160a01b03821660009081526009602052604090205460ff1660028111156113b157fe5b146113ce5760405162461bcd60e51b81526004016109849061301f565b806001600160a01b031663847ef08d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561140957600080fd5b505af115801561141d573d6000803e3d6000fd5b505050506001600160a01b0381166000908152600960205260409020805460ff1916905561144c600882611f53565b6040516001600160a01b038216907f0a1ee69f55c33d8467c69ca59ce2007a737a88603d75392972520bf67cb513b890600090a250565b6000610957611490611a79565b84610c228560405180606001604052806025815260200161363160259139600160006114ba611a79565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff611cc416565b600a5460ff1681565b611502611cf0565b600a5460ff166115245760405162461bcd60e51b8152600401610984906131ec565b6007546001600160a01b0316331461154e5760405162461bcd60e51b81526004016109849061327c565b600780546001600160a01b0319169055600a805460ff19169055565b606061095b82612080565b6000610957611582611a79565b8484611ba3565b611591611cf0565b611599611dcd565b6001600160a01b0382166000908152600c602052604090206115c4906001018263ffffffff611f5316565b6001600160a01b038083166000908152600c6020908152604080832093851683526002909301905290812081815590611600600183018261294a565b5050806001600160a01b0316826001600160a01b03167f5d0275f68d583838a7e2be68e3ef8ac2c1f9d4eeaa4b223360f4cd093a160d7560405160405180910390a35050565b60606008805480602002602001604051908101604052809291908181526020018280548015610938576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161131c575050505050905090565b6116ae611cf0565b6116b6611dcd565b6116bf81612362565b600d8190556040517fc4e78b3245dc105eefced18655b978e194ff858545a1080f2888dc3b6ae8df0a906116f4908390612ddc565b60405180910390a150565b600b81815481106111ae57fe5b611714611b31565b600a5460ff16156117375760405162461bcd60e51b815260040161098490613427565b60016001600160a01b03821660009081526009602052604090205460ff16600281111561176057fe5b1461177d5760405162461bcd60e51b8152600401610984906134b7565b6001600160a01b038116600081815260096020526040808220805460ff19169055517fd6b18042563148f38d728c1c4d339ffd515b632d0ad2e1833b822412f3f4d8779190a250565b6117ce611b31565b600a5460ff16156117f15760405162461bcd60e51b815260040161098490613427565b600680546001600160a01b038381166001600160a01b03198316179092556040519116907f43fcfef38622d6a5b118be09c27a6ed8cbdbfca21f0ea9245412ce8031c0423c906118449084908490612c5b565b60405180910390a15050565b6007546001600160a01b031681565b60006002610e9b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600061095b82600b8054806020026020016040519081016040528092919081815260200182805480156118ef57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118d1575b50505050506120f990919063ffffffff16565b61190a611cf0565b611912611dcd565b61191c8282610fc9565b156119395760405162461bcd60e51b815260040161098490612e54565b6001600160a01b038281166000818152600c60209081526040808320600190810180549182018155845291832090910180546001600160a01b0319169486169485179055517ff71324fa78e1894b364a1fc8d0535c4208f28c7b380f752afe00c8ce386023fb9190a35050565b6000806119b283610f48565b905060606119bf84612080565b905060005b8151811015611a04576119fa6119ed868484815181106119e057fe5b6020026020010151610b89565b849063ffffffff61239d16565b92506001016119c4565b50909392505050565b60055461010090046001600160a01b031681565b611a29611cf0565b600a5460ff1615611a4c5760405162461bcd60e51b815260040161098490612de5565b600780546001600160a01b03191633179055600a805460ff19166001179055565b670de0b6b3a764000090565b3390565b6001600160a01b038316611aa35760405162461bcd60e51b815260040161098490613320565b6001600160a01b038216611ac95760405162461bcd60e51b815260040161098490612ee8565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611b24908590612ddc565b60405180910390a3505050565b6006546001600160a01b03163314611b5b5760405162461bcd60e51b815260040161098490613453565b565b6001600160a01b039182166000908152600c602090815260408083209390941682526002909201909152205490565b600061095b600d54836123e390919063ffffffff16565b6001600160a01b038316611bc95760405162461bcd60e51b8152600401610984906132a4565b6001600160a01b038216611bef5760405162461bcd60e51b815260040161098490612e11565b611bfa838383612406565b611c3d816040518060600160405280602681526020016135ba602691396001600160a01b038616600090815260208190526040902054919063ffffffff611cc416565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611c72908263ffffffff611e4716565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b24908590612ddc565b60008184841115611ce85760405162461bcd60e51b81526004016109849190612db5565b505050900390565b60023360009081526009602052604090205460ff166002811115611d1057fe5b14611d2d5760405162461bcd60e51b8152600401610984906130c7565b6005546040516342f6e38960e01b81526101009091046001600160a01b0316906342f6e38990611d61903390600401612c47565b60206040518083038186803b158015611d7957600080fd5b505afa158015611d8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db19190612b9d565b611b5b5760405162461bcd60e51b8152600401610984906133e3565b600a5460ff1615611b5b576007546001600160a01b03163314611b5b5760405162461bcd60e51b81526004016109849061304d565b600080611e1a600d548461240b90919063ffffffff16565b9050600083138015611e2a575080155b1561095b5760405162461bcd60e51b815260040161098490612fe8565b600082820183811015610b9d5760405162461bcd60e51b815260040161098490612f2a565b6001600160a01b038216611e925760405162461bcd60e51b8152600401610984906134e7565b611e9e60008383612406565b600254611eb1908263ffffffff611e4716565b6002556001600160a01b038216600090815260208190526040902054611edd908263ffffffff611e4716565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f2c908590612ddc565b60405180910390a35050565b6001600160a01b03166000908152600c602052604090205490565b600080611fb984805480602002602001604051908101604052809291908181526020018280548015611fae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611f90575b50505050508461242e565b9150915080611fda5760405162461bcd60e51b815260040161098490612e82565b83546000190182811461204c57848181548110611ff357fe5b9060005260206000200160009054906101000a90046001600160a01b031685848154811061201d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8480548061205657fe5b600082815260209020810160001990810180546001600160a01b0319169055019055505b50505050565b6001600160a01b0381166000908152600c60209081526040918290206001018054835181840281018401909452808452606093928301828280156120ed57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120cf575b50505050509050919050565b600080612106848461242e565b95945050505050565b600080805b600b5481101561218e576000600b828154811061212d57fe5b60009182526020822001546001600160a01b0316915061214c82611f38565b1315612159576001909201915b606061216482612080565b80519091501561218457805161218190859063ffffffff611e4716565b93505b5050600101612114565b50905090565b6001600160a01b038281166000908152600c60209081526040808320938516835260029384018252918290206001908101805484519281161561010002600019011694909404601f8101839004830282018301909352828152606093909290918301828280156122455780601f1061221a57610100808354040283529160200191612245565b820191906000526020600020905b81548152906001019060200180831161222857829003601f168201915b5050505050905092915050565b60606122788484846040518060600160405280602981526020016135e060299139612494565b949350505050565b6001600160a01b0382166122a65760405162461bcd60e51b81526004016109849061323b565b6122b282600083612406565b6122f581604051806060016040528060228152602001613598602291396001600160a01b038516600090815260208190526040902054919063ffffffff611cc416565b6001600160a01b038316600090815260208190526040902055600254612321908263ffffffff61255516565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f2c908590612ddc565b600061236c612597565b90506000612380828463ffffffff6123e316565b13610dcf5760405162461bcd60e51b8152600401610984906132e9565b60008282018183128015906123b25750838112155b806123c757506000831280156123c757508381125b610b9d5760405162461bcd60e51b815260040161098490612f61565b6000610b9d6123f8848463ffffffff61268116565b670de0b6b3a76400006126ec565b505050565b6000610b9d61242884670de0b6b3a764000063ffffffff61268116565b836126ec565b81516000908190815b8181101561248157846001600160a01b031686828151811061245557fe5b60200260200101516001600160a01b031614156124795792506001915061248d9050565b600101612437565b50600019600092509250505b9250929050565b6060824710156124b65760405162461bcd60e51b815260040161098490612fa2565b6124bf8561277a565b6124db5760405162461bcd60e51b815260040161098490613364565b60006060866001600160a01b031685876040516124f89190612c2b565b60006040518083038185875af1925050503d8060008114612535576040519150601f19603f3d011682016040523d82523d6000602084013e61253a565b606091505b509150915061254a828286612780565b979650505050505050565b6000610b9d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cc4565b6000600019815b600b54811015612671576000600b82815481106125b757fe5b60009182526020822001546001600160a01b031691506125de6125d983611f38565b6127b9565b90506000811180156125ef57508381105b156125f8578093505b606061260383612080565b905060005b815181101561266157600082828151811061261f57fe5b60200260200101519050600061263d6126388784611b5d565b6127df565b905060008111801561264e57508781105b15612657578097505b5050600101612608565b50506001909201915061259e9050565b5061267b81612803565b91505090565b6000826126905750600061095b565b826000191480156126a45750600160ff1b82145b156126c15760405162461bcd60e51b8152600401610984906131a5565b828202828482816126ce57fe5b0514610b9d5760405162461bcd60e51b8152600401610984906131a5565b60008161270b5760405162461bcd60e51b81526004016109849061351e565b600160ff1b8314158061272057508160001914155b61273c5760405162461bcd60e51b815260040161098490613214565b600061274e848463ffffffff61282816565b9050600083851812801561276a575082848161276657fe5b0715155b15610b9d57600019019392505050565b3b151590565b6060831561278f575081610b9d565b82511561279f5782518084602001fd5b8160405162461bcd60e51b81526004016109849190612db5565b6000808212156127db5760405162461bcd60e51b815260040161098490613092565b5090565b6000808212156127fa576127f5826000036127b9565b61095b565b61095b826127b9565b6000600160ff1b82106127db5760405162461bcd60e51b81526004016109849061339b565b6000816128475760405162461bcd60e51b815260040161098490613482565b8160001914801561285b5750600160ff1b83145b156128785760405162461bcd60e51b8152600401610984906130fe565b600082848161288357fe5b05949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106128cd5782800160ff198235161785556128fa565b828001600101855582156128fa579182015b828111156128fa5782358255916020019190600101906128df565b506127db929150612991565b6040518060a0016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600060ff168152602001606081525090565b50805460018160011615610100020316600290046000825580601f10612970575061298e565b601f01602090049060005260206000209081019061298e9190612991565b50565b61094091905b808211156127db5760008155600101612997565b80356001600160a01b038116811461095b57600080fd5b60008083601f8401126129d3578182fd5b50813567ffffffffffffffff8111156129ea578182fd5b60208301915083602082850101111561248d57600080fd5b600060208284031215612a13578081fd5b610b9d83836129ab565b60008060408385031215612a2f578081fd5b612a3984846129ab565b9150612a4884602085016129ab565b90509250929050565b60008060008060608587031215612a66578182fd5b8435612a7181613582565b93506020850135612a8181613582565b9250604085013567ffffffffffffffff811115612a9c578283fd5b612aa8878288016129c2565b95989497509550505050565b600080600060608486031215612ac8578283fd5b612ad285856129ab565b9250612ae185602086016129ab565b9150604084013590509250925092565b600080600060608486031215612b05578283fd5b8335612b1081613582565b92506020840135612b2081613582565b929592945050506040919091013590565b60008060408385031215612b43578182fd5b612b4d84846129ab565b946020939093013593505050565b60008060008060608587031215612b70578384fd5b8435612b7b81613582565b935060208501359250604085013567ffffffffffffffff811115612a9c578283fd5b600060208284031215612bae578081fd5b81518015158114610b9d578182fd5b600060208284031215612bce578081fd5b5035919050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612c17816020860160208601613556565b601f01601f19169290920160200192915050565b60008251612c3d818460208701613556565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015612cb65783516001600160a01b031683529284019291840191600101612c91565b50909695505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b83811015612d5857888303603f19018552815180516001600160a01b039081168552888201511688850152868101518785015260608082015160ff169085015260808082015160a08287018190529190612d4283880182612bff565b988b019896505050928801925050600101612ce6565b509098975050505050505050565b901515815260200190565b600060208252612278602083018486612bd5565b600060408252612d99604083018587612bd5565b8281036020840152612dab8185612bff565b9695505050505050565b600060208252610b9d6020830184612bff565b6020810160038310612dd657fe5b91905290565b90815260200190565b602080825260129082015271135d5cdd081b9bdd081899481b1bd8dad95960721b604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b602080825260149082015273135bd91d5b1948185b1c9958591e48185919195960621b604082015260600190565b60208082526015908201527420b2323932b9b9903737ba1034b71030b93930bc9760591b604082015260600190565b60208082526018908201527f4d6f64756c65206d757374206e6f742062652061646465640000000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252601f908201527f5669727475616c20756e697420636f6e76657273696f6e20696e76616c696400604082015260600190565b602080825260149082015273135bd91d5b19481b5d5cdd08189948185919195960621b604082015260600190565b60208082526025908201527f5768656e206c6f636b65642c206f6e6c7920746865206c6f636b65722063616e6040820152640818d85b1b60da1b606082015260800190565b6020808252818101527f53616665436173743a2076616c7565206d75737420626520706f736974697665604082015260600190565b60208082526018908201527f4f6e6c7920746865206d6f64756c652063616e2063616c6c0000000000000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206469766973696f6e206f766572666c6f6040820152607760f81b606082015260800190565b602080825260159082015274135d5cdd081b9bdd0818994818dbdb5c1bdb995b9d605a1b604082015260600190565b6020808252601d908201527f4d75737420626520656e61626c6564206f6e20436f6e74726f6c6c6572000000604082015260600190565b60208082526027908201527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f604082015266766572666c6f7760c81b606082015260800190565b6020808252600e908201526d135d5cdd081899481b1bd8dad95960921b604082015260600190565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b6020808252600e908201526d26bab9ba103132903637b1b5b2b960911b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526018908201527f4e6577206d756c7469706c69657220746f6f20736d616c6c0000000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526028908201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604082015267371034b73a191a9b60c11b606082015260800190565b60208082526024908201527f4d6f64756c65206d75737420626520656e61626c6564206f6e20636f6e74726f604082015263363632b960e11b606082015260800190565b60208082526012908201527113db9b1e481dda195b881d5b9b1bd8dad95960721b604082015260600190565b60208082526015908201527413db9b1e481b585b9859d95c8818d85b8818d85b1b605a1b604082015260600190565b6020808252818101527f5369676e6564536166654d6174683a206469766973696f6e206279207a65726f604082015260600190565b6020808252601690820152754d6f64756c65206d7573742062652070656e64696e6760501b604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b60208082526010908201526f043616e742064697669646520627920360841b604082015260600190565b60ff91909116815260200190565b60005b83811015613571578181015183820152602001613559565b8381111561207a5750506000910152565b6001600160a01b038116811461298e57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cf4af89f7cfa78e2d4384cff55d4548a6062d655f5be8606d039069af7c903b464736f6c634300060a003300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000a4c8d221d8bb851f83aadd0223a8900a6921a349000000000000000000000000551a253749cea9e02a165688ef19355308a380b6000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000007000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000007d1afa7b718fb893db30a3abc0cfc608aacfebb00000000000000000000000000954906da0bf32d5479e25f46056d22f08464cab000000000000000000000000c944e90c64b2c07662a292be6244bdf05cda44a70000000000000000000000002d94aa3e47d9d5024503ca8491fce9a2fb4da1980000000000000000000000006b3595068778dd592e39a122f4f5a5cf09c90fe200000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000002144b6ce53daf00000000000000000000000000000000000000000000000000428772dafda96800000000000000000000000000000000000000000000000004edec84a0380000000000000000000000000000000000000000000000000000003a09167ce9e6010000000000000000000000000000000000000000000000000802cd3ad4dc1ca8000000000000000000000000000000000000000000000000ce1bd0d1c3e5480e0000000000000000000000000000000000000000000000000093488ad171dc250000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d8ef3cace8b4907117a45b0b125c68560532f94d00000000000000000000000090f765f63e7dc5ae97d6c576bf693fb6af41c12900000000000000000000000008f866c74205617b6f3903ef481798eced10cdec00000000000000000000000000000000000000000000000000000000000000114743204469676974616c2041737365747300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044743444100000000000000000000000000000000000000000000000000000000