UNPKG

@aragon/apps-payroll

Version:

_**Code in Github:**_ [aragon-apps/apps/payroll](https://github.com/aragon/aragon-apps/tree/master/future-apps/payroll)

502 lines 158 kB
{ "contractName": "PriceFeedMock", "abi": [ { "constant": true, "inputs": [], "name": "operatorOwner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "bases", "type": "address[]" }, { "name": "quotes", "type": "address[]" }, { "name": "xrts", "type": "uint128[]" }, { "name": "whens", "type": "uint64[]" }, { "name": "sigs", "type": "bytes" } ], "name": "updateMany", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "operator", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_seconds", "type": "uint256" } ], "name": "mockDecreaseTime", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_timestamp", "type": "uint256" } ], "name": "mockSetTimestamp", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "getBlockNumberPublic", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_number", "type": "uint256" } ], "name": "mockAdvanceBlocks", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "PPF_v1_ID", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getTimestampPublic", "outputs": [ { "name": "", "type": "uint64" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_seconds", "type": "uint256" } ], "name": "mockIncreaseTime", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_operator", "type": "address" } ], "name": "setOperator", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_operatorOwner", "type": "address" } ], "name": "setOperatorOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "base", "type": "address" }, { "name": "quote", "type": "address" } ], "name": "get", "outputs": [ { "name": "", "type": "uint128" }, { "name": "", "type": "uint64" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "ratePrecision", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "base", "type": "address" }, { "indexed": true, "name": "quote", "type": "address" }, { "indexed": false, "name": "xrt", "type": "uint256" }, { "indexed": false, "name": "when", "type": "uint64" } ], "name": "SetRate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "operator", "type": "address" } ], "name": "SetOperator", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "operatorOwner", "type": "address" } ], "name": "SetOperatorOwner", "type": "event" }, { "constant": false, "inputs": [ { "name": "base", "type": "address" }, { "name": "quote", "type": "address" }, { "name": "xrt", "type": "uint128" }, { "name": "when", "type": "uint64" }, { "name": "sig", "type": "bytes" } ], "name": "update", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60806040523480156200001157600080fd5b50600033620000298264010000000062000045810204565b6200003d816401000000006200008d810204565b5050620001be565b60008054600160a060020a031916600160a060020a038316908117825560405190917fdbebfba65bd6398fb722063efc10c99f624f9cd8ba657201056af918a676d5ee91a250565b60408051808201909152601f81527f5050465f4f50455241544f525f4f574e45525f414444524553535f5a45524f006020820152600160a060020a038216151562000173576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001375781810151838201526020016200011d565b50505050905090810190601f168015620001655780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018054600160a060020a031916600160a060020a0383169081179091556040517f99ac3391bcaac6e04578cbac2efd183c665745adeb1ad37989376c39f137177a90600090a250565b61185e80620001ce6000396000f3006080604052600436106100da5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630cc893e281146100df5780630dfcdb071461011d578063570ca7351461025d57806360be675f146102725780636958839e1461028a5780636da1dfac146102a25780637750db14146102c957806377bb1361146102e15780637e365950146102f65780638f49e12f14610328578063b3ab15fb14610340578063b800919e1461036e578063d81e84231461039c578063f40a044814610405578063fdadbbb61461041a575b600080fd5b3480156100eb57600080fd5b506100f46104ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561012957600080fd5b506040805160206004803580820135838102808601850190965280855261025b95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506104d69650505050505050565b005b34801561026957600080fd5b506100f46109bc565b34801561027e57600080fd5b5061025b6004356109d8565b34801561029657600080fd5b5061025b600435610a12565b3480156102ae57600080fd5b506102b7610a17565b60408051918252519081900360200190f35b3480156102d557600080fd5b5061025b600435610a27565b3480156102ed57600080fd5b506102b7610a60565b34801561030257600080fd5b5061030b610a84565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561033457600080fd5b5061025b600435610a8e565b34801561034c57600080fd5b5061025b73ffffffffffffffffffffffffffffffffffffffff60043516610ab9565b34801561037a57600080fd5b5061025b73ffffffffffffffffffffffffffffffffffffffff60043516610b9d565b3480156103a857600080fd5b506103d073ffffffffffffffffffffffffffffffffffffffff60043581169060243516610c5d565b604080516fffffffffffffffffffffffffffffffff909316835267ffffffffffffffff90911660208301528051918290030190f35b34801561041157600080fd5b506102b7610d52565b34801561042657600080fd5b50604080516020601f60843560048181013592830184900484028501840190955281845261025b9473ffffffffffffffffffffffffffffffffffffffff813581169560248035909216956fffffffffffffffffffffffffffffffff604435169567ffffffffffffffff606435169536959460a49493910191908190840183828082843750949750610d5e9650505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b845160408051808201909152601b81527f5050465f424153455f4144445245535345535f4c454e5f5a45524f00000000006020820152600091606091839115156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561057d578181015183820152602001610565565b50505050905090810190601f1680156105aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50865188516040805180820190915260208082527f5050465f51554f54455f4144445245535345535f4c454e5f4d49534d41544348908201529114610659576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b508551885160408051808201909152601c81527f5050465f524154455f56414c5545535f4c454e5f4d49534d4154434800000000602082015291146106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50845188516040805180820190915260208082527f5050465f524154455f54494d455354414d50535f4c454e5f4d49534d4154434890820152911461079b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b508351885160408051808201909152601b81527f5050465f5349474e4154555245535f4c454e5f4d49534d4154434800000000006020820152916041900414610840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50835160408051808201909152601b81527f5050465f5349474e4154555245535f4c454e5f4d49534d41544348000000000060208201529060419006156108e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50600092505b87518310156109b257604080516041808252608082019092529060208201610820803883390190505091508260410260200190508084015160208301526020810184015160408301526021810184015160608301536109a7888481518110151561094f57fe5b90602001906020020151888581518110151561096757fe5b90602001906020020151888681518110151561097f57fe5b90602001906020020151888781518110151561099757fe5b9060200190602002015186610d5e565b6001909201916108e9565b5050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600354156109fb576003546109f3908263ffffffff610f2b16565b600355610a0f565b610a0b428263ffffffff610f2b16565b6003555b50565b600355565b6000610a21610fd6565b90505b90565b60045415610a4a57600454610a42908263ffffffff610ff216565b600455610a0f565b610a5a438263ffffffff610ff216565b60045550565b7f33a8ba7202230fa1cee2aac7bac322939edc7ba0a48b0989335a5f87a577036981565b6000610a2161109f565b60035415610aa9576003546109f3908263ffffffff610ff216565b610a0b428263ffffffff610ff216565b60005473ffffffffffffffffffffffffffffffffffffffff16331480610af6575060015473ffffffffffffffffffffffffffffffffffffffff1633145b60408051808201909152601881527f5050465f43414e5f4e4f545f5345545f4f50455241544f5200000000000000006020820152901515610b93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50610a0f816110b1565b60015460408051808201909152601e81527f5050465f43414e5f4e4f545f5345545f4f50455241544f525f4f574e4552000060208201529073ffffffffffffffffffffffffffffffffffffffff163314610c53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50610a0f8161111e565b60008060008373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610cb057670de0b6b3a7640000610ca761109f565b92509250610d4a565b60026000610cbe8787611241565b815260208101919091526040016000208054909150700100000000000000000000000000000000900467ffffffffffffffff161515610d035760009250829150610d4a565b8054610d2490869086906fffffffffffffffffffffffffffffffff16611395565b8154909350700100000000000000000000000000000000900467ffffffffffffffff1691505b509250929050565b670de0b6b3a764000090565b600080610d6b8787611241565b915060006fffffffffffffffffffffffffffffffff861611610d8c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8781169087161415610db257600080fd5b610dbe878787876113e6565b60005490915073ffffffffffffffffffffffffffffffffffffffff16610dea828563ffffffff61155116565b73ffffffffffffffffffffffffffffffffffffffff1614610e0a57600080fd5b6040805190810160405280610e20898989611395565b6fffffffffffffffffffffffffffffffff908116825267ffffffffffffffff878116602093840181905260008781526002855260409081902086518154978701517fffffffffffffffffffffffffffffffff00000000000000000000000000000000909816908616177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff167001000000000000000000000000000000009790941696909602929092179094558051918916825291810192909252805173ffffffffffffffffffffffffffffffffffffffff89811693908b16927fdc3cf748498d22cc47e2d62e2a7216a21f3e47de73ea3d4a9b2a7ccd976ff84d92918290030190a350505050505050565b60408051808201909152601281527f4d4154485f5355425f554e444552464c4f5700000000000000000000000000006020820152600090819084841115610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b505050900390565b60045460009015610fea5750600454610a24565b610a2161156c565b60408051808201909152601181527f4d4154485f4144445f4f564552464c4f5700000000000000000000000000000060208201526000908383019084821015611097576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b509392505050565b6000610a216110ac611570565b61158c565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917fdbebfba65bd6398fb722063efc10c99f624f9cd8ba657201056af918a676d5ee91a250565b60408051808201909152601f81527f5050465f4f50455241544f525f4f574e45525f414444524553535f5a45524f00602082015273ffffffffffffffffffffffffffffffffffffffff821615156111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f99ac3391bcaac6e04578cbac2efd183c665745adeb1ad37989376c39f137177a90600090a250565b600080600080611251868661163c565b92508261125e5784611260565b855b91508261126d578561126f565b845b90508181604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040516020818303038152906040526040518082805190602001908083835b6020831061135c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902093505b50505092915050565b6000806113a2858561163c565b9050806113db576fffffffffffffffffffffffffffffffff83166ec097ce7bc90715b34b9f10000000008115156113d557fe5b046113dd565b825b95945050505050565b604080517f33a8ba7202230fa1cee2aac7bac322939edc7ba0a48b0989335a5f87a57703696020808301919091526c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff80891682028486015287160260548301527001000000000000000000000000000000006fffffffffffffffffffffffffffffffff8616026068830152780100000000000000000000000000000000000000000000000067ffffffffffffffff8516026078830152825160608184030181526080909201928390528151600093918291908401908083835b602083106114fe57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016114c1565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900390912098975050505050505050565b600061156561155f8461165a565b83611740565b9392505050565b4390565b600354600090156115845750600354610a24565b610a2161182e565b60408051808201909152601581527f55494e5436345f4e554d4245525f544f4f5f4249470000000000000000000000602082015260009067ffffffffffffffff831115611635576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b5090919050565b73ffffffffffffffffffffffffffffffffffffffff90811691161090565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830185905283518084039091018152605c909201928390528151600093918291908401908083835b602083106116f057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016116b3565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900390912095945050505050565b6000806000808451604114151561175a576000935061138c565b50505060208201516040830151606084015160001a601b60ff8216101561177f57601b015b8060ff16601b1415801561179757508060ff16601c14155b156117a5576000935061138c565b60408051600080825260208083018085528a905260ff8516838501526060830187905260808301869052925160019360a08085019491937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0840193928390039091019190865af115801561181d573d6000803e3d6000fd5b50505060206040510351935061138c565b42905600a165627a7a723058204c22077dc3d0dcab01f305050ad4ff71b52b5cdf264e4321a4928a60b8ed574f0029", "deployedBytecode": "0x6080604052600436106100da5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630cc893e281146100df5780630dfcdb071461011d578063570ca7351461025d57806360be675f146102725780636958839e1461028a5780636da1dfac146102a25780637750db14146102c957806377bb1361146102e15780637e365950146102f65780638f49e12f14610328578063b3ab15fb14610340578063b800919e1461036e578063d81e84231461039c578063f40a044814610405578063fdadbbb61461041a575b600080fd5b3480156100eb57600080fd5b506100f46104ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561012957600080fd5b506040805160206004803580820135838102808601850190965280855261025b95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506104d69650505050505050565b005b34801561026957600080fd5b506100f46109bc565b34801561027e57600080fd5b5061025b6004356109d8565b34801561029657600080fd5b5061025b600435610a12565b3480156102ae57600080fd5b506102b7610a17565b60408051918252519081900360200190f35b3480156102d557600080fd5b5061025b600435610a27565b3480156102ed57600080fd5b506102b7610a60565b34801561030257600080fd5b5061030b610a84565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561033457600080fd5b5061025b600435610a8e565b34801561034c57600080fd5b5061025b73ffffffffffffffffffffffffffffffffffffffff60043516610ab9565b34801561037a57600080fd5b5061025b73ffffffffffffffffffffffffffffffffffffffff60043516610b9d565b3480156103a857600080fd5b506103d073ffffffffffffffffffffffffffffffffffffffff60043581169060243516610c5d565b604080516fffffffffffffffffffffffffffffffff909316835267ffffffffffffffff90911660208301528051918290030190f35b34801561041157600080fd5b506102b7610d52565b34801561042657600080fd5b50604080516020601f60843560048181013592830184900484028501840190955281845261025b9473ffffffffffffffffffffffffffffffffffffffff813581169560248035909216956fffffffffffffffffffffffffffffffff604435169567ffffffffffffffff606435169536959460a49493910191908190840183828082843750949750610d5e9650505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b845160408051808201909152601b81527f5050465f424153455f4144445245535345535f4c454e5f5a45524f00000000006020820152600091606091839115156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561057d578181015183820152602001610565565b50505050905090810190601f1680156105aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50865188516040805180820190915260208082527f5050465f51554f54455f4144445245535345535f4c454e5f4d49534d41544348908201529114610659576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b508551885160408051808201909152601c81527f5050465f524154455f56414c5545535f4c454e5f4d49534d4154434800000000602082015291146106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50845188516040805180820190915260208082527f5050465f524154455f54494d455354414d50535f4c454e5f4d49534d4154434890820152911461079b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b508351885160408051808201909152601b81527f5050465f5349474e4154555245535f4c454e5f4d49534d4154434800000000006020820152916041900414610840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50835160408051808201909152601b81527f5050465f5349474e4154555245535f4c454e5f4d49534d41544348000000000060208201529060419006156108e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50600092505b87518310156109b257604080516041808252608082019092529060208201610820803883390190505091508260410260200190508084015160208301526020810184015160408301526021810184015160608301536109a7888481518110151561094f57fe5b90602001906020020151888581518110151561096757fe5b90602001906020020151888681518110151561097f57fe5b90602001906020020151888781518110151561099757fe5b9060200190602002015186610d5e565b6001909201916108e9565b5050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600354156109fb576003546109f3908263ffffffff610f2b16565b600355610a0f565b610a0b428263ffffffff610f2b16565b6003555b50565b600355565b6000610a21610fd6565b90505b90565b60045415610a4a57600454610a42908263ffffffff610ff216565b600455610a0f565b610a5a438263ffffffff610ff216565b60045550565b7f33a8ba7202230fa1cee2aac7bac322939edc7ba0a48b0989335a5f87a577036981565b6000610a2161109f565b60035415610aa9576003546109f3908263ffffffff610ff216565b610a0b428263ffffffff610ff216565b60005473ffffffffffffffffffffffffffffffffffffffff16331480610af6575060015473ffffffffffffffffffffffffffffffffffffffff1633145b60408051808201909152601881527f5050465f43414e5f4e4f545f5345545f4f50455241544f5200000000000000006020820152901515610b93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50610a0f816110b1565b60015460408051808201909152601e81527f5050465f43414e5f4e4f545f5345545f4f50455241544f525f4f574e4552000060208201529073ffffffffffffffffffffffffffffffffffffffff163314610c53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50610a0f8161111e565b60008060008373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610cb057670de0b6b3a7640000610ca761109f565b92509250610d4a565b60026000610cbe8787611241565b815260208101919091526040016000208054909150700100000000000000000000000000000000900467ffffffffffffffff161515610d035760009250829150610d4a565b8054610d2490869086906fffffffffffffffffffffffffffffffff16611395565b8154909350700100000000000000000000000000000000900467ffffffffffffffff1691505b509250929050565b670de0b6b3a764000090565b600080610d6b8787611241565b915060006fffffffffffffffffffffffffffffffff861611610d8c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8781169087161415610db257600080fd5b610dbe878787876113e6565b60005490915073ffffffffffffffffffffffffffffffffffffffff16610dea828563ffffffff61155116565b73ffffffffffffffffffffffffffffffffffffffff1614610e0a57600080fd5b6040805190810160405280610e20898989611395565b6fffffffffffffffffffffffffffffffff908116825267ffffffffffffffff878116602093840181905260008781526002855260409081902086518154978701517fffffffffffffffffffffffffffffffff00000000000000000000000000000000909816908616177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff167001000000000000000000000000000000009790941696909602929092179094558051918916825291810192909252805173ffffffffffffffffffffffffffffffffffffffff89811693908b16927fdc3cf748498d22cc47e2d62e2a7216a21f3e47de73ea3d4a9b2a7ccd976ff84d92918290030190a350505050505050565b60408051808201909152601281527f4d4154485f5355425f554e444552464c4f5700000000000000000000000000006020820152600090819084841115610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b505050900390565b60045460009015610fea5750600454610a24565b610a2161156c565b60408051808201909152601181527f4d4154485f4144445f4f564552464c4f5700000000000000000000000000000060208201526000908383019084821015611097576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b509392505050565b6000610a216110ac611570565b61158c565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917fdbebfba65bd6398fb722063efc10c99f624f9cd8ba657201056af918a676d5ee91a250565b60408051808201909152601f81527f5050465f4f50455241544f525f4f574e45525f414444524553535f5a45524f00602082015273ffffffffffffffffffffffffffffffffffffffff821615156111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b50600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f99ac3391bcaac6e04578cbac2efd183c665745adeb1ad37989376c39f137177a90600090a250565b600080600080611251868661163c565b92508261125e5784611260565b855b91508261126d578561126f565b845b90508181604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040516020818303038152906040526040518082805190602001908083835b6020831061135c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902093505b50505092915050565b6000806113a2858561163c565b9050806113db576fffffffffffffffffffffffffffffffff83166ec097ce7bc90715b34b9f10000000008115156113d557fe5b046113dd565b825b95945050505050565b604080517f33a8ba7202230fa1cee2aac7bac322939edc7ba0a48b0989335a5f87a57703696020808301919091526c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff80891682028486015287160260548301527001000000000000000000000000000000006fffffffffffffffffffffffffffffffff8616026068830152780100000000000000000000000000000000000000000000000067ffffffffffffffff8516026078830152825160608184030181526080909201928390528151600093918291908401908083835b602083106114fe57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016114c1565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900390912098975050505050505050565b600061156561155f8461165a565b83611740565b9392505050565b4390565b600354600090156115845750600354610a24565b610a2161182e565b60408051808201909152601581527f55494e5436345f4e554d4245525f544f4f5f4249470000000000000000000000602082015260009067ffffffffffffffff831115611635576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561057d578181015183820152602001610565565b5090919050565b73ffffffffffffffffffffffffffffffffffffffff90811691161090565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830185905283518084039091018152605c909201928390528151600093918291908401908083835b602083106116f057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016116b3565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900390912095945050505050565b6000806000808451604114151561175a576000935061138c565b50505060208201516040830151606084015160001a601b60ff8216101561177f57601b015b8060ff16601b1415801561179757508060ff16601c14155b156117a5576000935061138c565b60408051600080825260208083018085528a905260ff8516838501526060830187905260808301869052925160019360a08085019491937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0840193928390039091019190865af115801561181d573d6000803e3d6000fd5b50505060206040510351935061138c565b42905600a165627a7a723058204c22077dc3d0dcab01f305050ad4ff71b52b5cdf264e4321a4928a60b8ed574f0029", "sourceMap": "139:1362:6:-;;;257:113;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;284:1:6;288:10;2294:23:64;284:1:6;2294:12:64;;;;:23;:::i;:::-;2327:33;2345:14;2327:17;;;;:33;:::i;:::-;2221:146;;139:1362:6;;466:169;571:8;:20;;-1:-1:-1;;;;;;571:20:6;-1:-1:-1;;;;;571:20:6;;;;;;;606:22;;571:20;;606:22;;;466:169;:::o;7889:236:64:-;7997:33;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7967:28:64;;;;7959:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7959:72:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8041:13:64;:30;;-1:-1:-1;;;;;;8041:30:64;-1:-1:-1;;;;;8041:30:64;;;;;;;;8086:32;;;;-1:-1:-1;;8086:32:64;7889:236;:::o;139:1362:6:-;;;;;;;", "deployedSourceMap": "139:1362:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1764:28:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1764:28:64;;;;;;;;;;;;;;;;;;;;;;;6312:1370;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6312:1370:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6312:1370:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6312:1370:64;;;;-1:-1:-1;6312:1370:64;-1:-1:-1;6312:1370:64;;-1:-1:-1;6312:1370:64;;;;;;;;;-1:-1:-1;;6312:1370:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6312:1370:64;;;;-1:-1:-1;6312:1370:64;-1:-1:-1;6312:1370:64;;-1:-1:-1;6312:1370:64;;;;;;;;;-1:-1:-1;;6312:1370:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6312:1370:64;;;;-1:-1:-1;6312:1370:64;-1:-1:-1;6312:1370:64;;-1:-1:-1;6312:1370:64;;;;;;;;;-1:-1:-1;;6312:1370:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6312:1370:64;;;;-1:-1:-1;6312:1370:64;-1:-1:-1;6312:1370:64;;-1:-1:-1;6312:1370:64;;;;;;;;-1:-1:-1;6312:1370:64;;-1:-1:-1;6312:1370:64;;-1:-1:-1;;;;;;;6312:1370:64;;;1735:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1735:23:64;;;;954:203:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;954:203:66;;;;;451:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;451:98:66;;;;;1702:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1702:102:66;;;;;;;;;;;;;;;;;;;;1260:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1260:206:66;;;;;220:102:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;220:102:64;;;;1533:99:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1533:99:66;;;;;;;;;;;;;;;;;;;;;;;650:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;650:203:66;;;;;2524:363:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2524:363:64;;;;;;;3040:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3040:189:64;;;;;;;3452:408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3452:408:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3951:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3951:84:64;;;;716:783:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;716:783:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;716:783:6;;-1:-1:-1;716:783:6;;-1:-1:-1;;;;;;;716:783:6;1764:28:64;;;;;;:::o;6312:1370::-;6436:12;;6455:32;;;;;;;;;;;;;;;;;6917:9;;7048:16;;6917:9;;6436:17;;6428:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6428:60:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6522:13:64;;6506:12;;6537:37;;;;;;;;;;;;;;;;;;;6506:29;6498:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;6498:77:64;-1:-1:-1;6609:11:64;;6593:12;;6622:33;;;;;;;;;;;;;;;;;;6593:27;6585:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;6585:71:64;-1:-1:-1;6690:12:64;;6674;;6704:37;;;;;;;;;;;;;;;;;;;6674:28;6666:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;6666:76:64;-1:-1:-1;6776:11:64;;6760:12;;6794:32;;;;;;;;;;;;;;;;;;6790:2;6776:16;;6760:32;6752:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;6752:75:64;-1:-1:-1;6845:11:64;;6868:32;;;;;;;;;;;;;;;;;;6859:2;6845:16;;:21;6837:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;6837:64:64;;6929:1;6917:13;;6912:764;6936:5;:12;6932:1;:16;6912:764;;;7067:13;;;7077:2;7067:13;;;;;;;;;;;;;17:15:-1;;105:10;7067:13:64;88:34:-1;136:17;;-1:-1;7067:13:64;7048:32;;7121:1;7116:2;:6;7111:2;:11;7094:28;;7315:6;7309:4;7305:17;7299:24;7292:4;7287:3;7283:14;7276:48;7392:4;7384:6;7380:17;7374:4;7370:28;7364:35;7357:4;7352:3;7348:14;7341:59;7578:4;7570:6;7566:17;7560:4;7556:28;7550:35;7543:4;7538:3;7534:14;7526:60;7614:51;7621:5;7627:1;7621:8;;;;;;;;;;;;;;;;;;7631:6;7638:1;7631:9;;;;;;;;;;;;;;;;;;7642:4;7647:1;7642:7;;;;;;;;;;;;;;;;;;7651:5;7657:1;7651:8;;;;;;;;;;;;;;;;;;7661:3;7614:6;:51::i;:::-;6950:3;;;;;6912:764;;;6312:1370;;;;;;;;:::o;1735:23::-;;;;;;:::o;954:203:66:-;1019:15;;:20;1015:135;;1059:15;;:29;;1079:8;1059:29;:19;:29;:::i;:::-;1041:15;:47;1015:135;;;1121:29;:15;1141:8;1121:29;:19;:29;:::i;:::-;1103:15;:47;1015:135;954:203;:::o;451:98::-;514:15;:28;451:98::o;1702:102::-;1755:7;1781:16;:14;:16::i;:::-;1774:23;;1702:102;;:::o;1260:206::-;1325:17;;:22;1321:138;;1369:17;;:30;;1391:7;1369:30;:21;:30;:::i;:::-;1349:17;:50;1321:138;;;1434:25;:12;1451:7;1434:25;:16;:25;:::i;:::-;1414:17;:45;1260:206;:::o;220:102:64:-;256:66;220:102;:::o;1533:99:66:-;1584:6;1609:16;:14;:16::i;650:203::-;715:15;;:20;711:135;;755:15;;:29;;775:8;755:29;:19;:29;:::i;711:135::-;817:29;:15;837:8;817:29;:19;:29;:::i;2524:363:64:-;2779:8;;;;2765:10;:22;;:53;;-1:-1:-1;2805:13:64;;;;2791:10;:27;2765:53;2820:26;;;;;;;;;;;;;;;;;;2757:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;2757:90:64;;2857:23;2870:9;2857:12;:23::i;3040:189::-;3131:13;;3146:32;;;;;;;;;;;;;;;;;;3131:13;;3117:10;:27;3109:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3109:70:64;;3189:33;3207:14;3189:17;:33::i;3452:408::-;3517:7;3526:6;3637:19;3556:5;3548:13;;:4;:13;;;3544:83;;;384:8;3599:16;:14;:16::i;:::-;3577:39;;;;;;3544:83;3659:4;:26;3664:20;3672:4;3678:5;3664:7;:20::i;:::-;3659:26;;;;;;;;;;;-1:-1:-1;3659:26:64;3735:10;;3659:26;;-1:-1:-1;3735:10:64;;;;;:15;3731:59;;;3774:1;;-1:-1:-1;3774:1:64;;-1:-1:-1;3766:13:64;;3731:59;3830:9;;3808:32;;3817:4;;3823:5;;3830:9;;3808:8;:32::i;:::-;3842:10;;3800:53;;-1:-1:-1;3842:10:64;;;;;;-1:-1:-1;3452:408:64;;;;;;;:::o;3951:84::-;384:8;3951:84;:::o;716:783:6:-;815:12;1234:9;830:20;838:4;844:5;830:7;:20::i;:::-;815:35;-1:-1:-1;1033:1:6;1027:7;;;;1019:16;;;;;;1135:13;;;;;;;;;1127:22;;;;;;1246:32;1255:4;1261:5;1268:3;1273:4;1246:8;:32::i;:::-;1322:8;;1234:44;;-1:-1:-1;1322:8:6;;1296:22;1234:44;1314:3;1296:22;:17;:22;:::i;:::-;:34;;;1288:43;;;;;;1406:39;;;;;;;;;1412:26;1421:4;1427:5;1434:3;1412:8;:26::i;:::-;1406:39;;;;;;;;;;;;;;;;;-1:-1:-1;1393:10:6;;;:4;:10;;;;;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1461:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:783;;;;;;;:::o;1685:172:59:-;1782:19;;;;;;;;;;;;;;;;;1745:7;;;;1772:8;;;;1764:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1764:38:59;-1:-1:-1;;;1824:7:59;;;1685:172::o;2172:166:66:-;2244:17;;2221:7;;2244:22;2240:52;;-1:-1:-1;2275:17:66;;2268:24;;2240:52;2309:22;:20;:22::i;1928:170:59:-;2053:18;;;;;;;;;;;;;;;;;1988:7;;2019;;;;2044;;;;2036:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;2036:36:59;-1:-1:-1;2090:1:59;1928:170;-1:-1:-1;;;1928:170:59:o;1261:106:37:-;1310:6;1335:25;:14;:12;:14::i;:::-;:23;:25::i;466:169:6:-;571:8;:20;;;;;;;;;;;;606:22;;571:20;;606:22;;;466:169;:::o;7889:236:64:-;7997:33;;;;;;;;;;;;;;;;;7967:28;;;;;7959:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;7959:72:64;-1:-1:-1;8041:13:64;:30;;;;;;;;;;;;;8086:32;;;;-1:-1:-1;;8086:32:64;7889:236;:::o;8234:330::-;8303:7;8322:16;8378:19;8436:20;8341:27;8356:4;8362:5;8341:14;:27::i;:::-;8322:46;;8400:11;:26;;8421:5;8400:26;;;8414:4;8400:26;8378:48;;8459:11;:26;;8481:4;8459:26;;;8473:5;8459:26;8436:49;;8530:11;8543:12;8513:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8513:43:64;;;8503:54;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8503:54:64;;;;;;;;;;;;;;;;8496:61;;8234:330;;;;;;;;:::o;8643:271::-;8726:7;8745:16;8764:27;8779:4;8785:5;8764:14;:27::i;:::-;8745:46;;8809:11;:52;;8847:12;;;8838:6;:21;;;;;;;;8809:52;;;8823:3;8809:52;8802:59;8643:271;-1:-1:-1;;;;;8643:271:64:o;8920:191::-;9052:51;;;256:66;9052:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;9052:51:64;;;;;;;;9042:62;;9016:7;;9052:51;;;9042:62;;;;;9052:51;9042:62;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;;;;365:33;;9042:62:64;;;;;;;;;;;;-1:-1:-1;;;;;;;;8920:191:64:o;588:142:65:-;661:7;683:42;691:28;714:4;691:22;:28::i;:::-;721:3;683:7;:42::i;:::-;676:49;588:142;-1:-1:-1;;;588:142:65:o;347:94:37:-;422:12;347:94;:::o;1909:158:66:-;1979:15;;1956:7;;1979:20;1975:48;;-1:-1:-1;2008:15:66;;2001:22;;1975:48;2040:20;:18;:20::i;188:149:38:-;283:20;;;;;;;;;;;;;;;;;240:6;;271:10;266:15;;;258:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;258:46:38;-1:-1:-1;328:1:38;;188:149;-1:-1:-1;188:149:38:o;9117:117:64:-;9215:12;;;;;;;;9117:117::o;1844:283:65:-;2045:76;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2045:76:65;;;;;;;;2035:87;;1925:7;;2045:76;;;2035:87;;;;;2045:76;2035:87;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;;;;365:33;;2035:87:65;;;;;;;;;;;;-1:-1:-1;;;;;1844:283:65:o;1006:695::-;1071:7;1086:9;1101;1116:7;1167:3;:10;1181:2;1167:16;;1163:56;;;1209:1;1193:19;;;;1163:56;-1:-1:-1;;;1314:2:65;1305:12;;1299:19;1345:2;1336:12;;1330:19;1384:2;1375:12;;1369:19;1366:1;1361:28;1496:2;1492:6;;;;1488:34;;;1513:2;1508:7;1488:34;1591:1;:7;;1596:2;1591:7;;:18;;;;;1602:1;:7;;1607:2;1602:7;;1591:18;1587:110;;;1635:1;1619:19;;;;1587:110;1666:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1666:24:65;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1666:24:65;;;;;;;;1659:31;;;;926:144:37;999:15;926:144;:::o", "source": "pragma solidity ^0.4.24;\n\nimport \"@aragon/ppf-contracts/contracts/PPF.sol\";\nimport \"@aragon/test-helpers/contracts/TimeHelpersMock.sol\";\n\n\ncontract PriceFeedMock is PPF, TimeHelpersMock {\n // Set operator to address(0) so invalid signatures can pass\n constructor () PPF(address(0), msg.sender) public {\n // solium-disable-previous-line no-empty-blocks\n }\n\n // Overriding function for testing purposes, removing check for zero address operator\n function _setOperator(address _operator) internal {\n // require(_operator != address(0));\n operator = _operator;\n emit SetOperator(_operator);\n }\n\n // Overwrite function using TimeHelpers and allowing to set past rates\n function update(address base, address quote, uint128 xrt, uint64 when, bytes sig) public {\n bytes32 pair = _pairId(base, quote);\n\n // Remove check that ensures a given rate is more recent than the current value\n // require(when > feed[pair].when && when <= getTimestamp());\n require(xrt > 0); // Make sure xrt is not 0, as the math would break (Dividing by 0 sucks big time)\n require(base != quote); // Assumption that currency units are fungible and xrt should always be 1\n\n bytes32 h = _setHash(base, quote, xrt, when);\n require(h.personalRecover(sig) == operator); // Make sure the update was signed by the operator\n\n feed[pair] = Price(_pairXRT(base, quote, xrt), when);\n\n emit SetRate(base, quote, xrt, when);\n }\n}\n", "sourcePath": "/Users/facu/Documents/work/aragon/dev/aragon-apps/future-apps/payroll/contracts/test/mocks/PriceFeedMock.sol", "ast": { "absolutePath": "/Users/facu/Documents/work/aragon/dev/aragon-apps/future-apps/payroll/contracts/test/mocks/PriceFeedMock.sol", "exportedSymbols": { "PriceFeedMock": [ 3491 ] }, "id": 3492, "nodeType": "SourceUnit", "nodes": [ { "id": 3388, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:6" }, { "absolutePath": "@aragon/ppf-contracts/contracts/PPF.sol", "file": "@aragon/ppf-contracts/contracts/PPF.sol", "id": 3389, "nodeType": "ImportDirective", "scope": 3492, "sourceUnit": 14888, "src": "26:49:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@aragon/test-helpers/contracts/TimeHelpersMock.sol", "file": "@aragon/test-helpers/contracts/TimeHelpersMock.sol", "id": 3390, "nodeType": "ImportDirective", "scope": 3492, "sourceUnit": 15139, "src": "76:60:6", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3391, "name": "PPF", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 14887, "src": "165:3:6", "typeDescriptions": { "typeIdentifier": "t_contract$_PPF_$14887", "typeString": "contract PPF" } }, "id": 3392, "nodeType": "InheritanceSpecifier", "src": "165:3:6" }, { "arguments": null, "baseName": { "contractScope": null, "id": 3393, "name": "TimeHelpersMock", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 15138, "src": "170:15:6", "typeDescriptions": { "typeIdentifier": "t_contract$_TimeHelpersMock_$15138", "typeString": "contract TimeHelpersMock" } }, "id": 3394, "nodeType": "InheritanceSpecifier", "src": "170:15:6" } ], "contractDependencies": [ 11200, 14313, 14887, 15138 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 3491, "linearizedBaseContracts": [ 3491, 15138, 14887, 11200, 14313 ], "name": "PriceFeedMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 3404, "nodeType": "Block", "src": "307:63:6", "statements": [] }, "documentation": null, "id": 3405, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [ { "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3398, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "284:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 3397, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "276:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3399, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "276:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3400, "name": "msg", "nodeType