UNPKG

@mean-finance/dca-v2-periphery

Version:

💱 Periphery smart contracts of DCA V2 by mean.finance

394 lines (393 loc) • 38 kB
{ "_format": "hh-sol-artifact-1", "contractName": "DCAKeep3rJob", "sourceName": "contracts/DCAKeep3rJob/DCAKeep3rJob.sol", "abi": [ { "inputs": [ { "internalType": "contract IKeep3r", "name": "_keep3r", "type": "address" }, { "internalType": "address", "name": "_swapper", "type": "address" }, { "internalType": "address", "name": "_superAdmin", "type": "address" }, { "internalType": "address[]", "name": "_initialCanSign", "type": "address[]" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "NotAKeeper", "type": "error" }, { "inputs": [], "name": "SignerCannotSignWork", "type": "error" }, { "inputs": [], "name": "ZeroAddress", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newSwapper", "type": "address" } ], "name": "NewSwapperSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "inputs": [], "name": "CAN_SIGN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SUPER_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WORK_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "keep3r", "outputs": [ { "internalType": "contract IKeep3r", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_swapper", "type": "address" } ], "name": "setSwapper", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapperAndNonce", "outputs": [ { "internalType": "address", "name": "swapper", "type": "address" }, { "internalType": "uint96", "name": "nonce", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_call", "type": "bytes" }, { "internalType": "uint8", "name": "_v", "type": "uint8" }, { "internalType": "bytes32", "name": "_r", "type": "bytes32" }, { "internalType": "bytes32", "name": "_s", "type": "bytes32" } ], "name": "work", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6101606040523480156200001257600080fd5b5060405162001fee38038062001fee8339810160408190526200003591620003d0565b604080518082018252601d81527f4d65616e2046696e616e6365202d20444341204b6565703372204a6f620000006020808301918252835180850190945260018452603160f81b908401528151902060e08190527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66101008190524660a0529192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001288184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c052610120525050506001600160a01b0385169050620001605760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038316620001885760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038216620001b05760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811661014052600180546001600160a01b031916918516919091179055620001f160008051602062001fce8339815191528062000294565b6200021b60008051602062001fae83398151915260008051602062001fce83398151915262000294565b6200023660008051602062001fce83398151915283620002df565b60005b815181101562000289576200028060008051602062001fae8339815191528383815181106200026c576200026c620004e4565b6020026020010151620002df60201b60201c565b60010162000239565b5050505050620004fa565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b620002eb8282620002ef565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620002eb576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200034b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6001600160a01b0381168114620003a557600080fd5b50565b8051620003b5816200038f565b919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215620003e757600080fd5b8451620003f4816200038f565b8094505060208086015162000409816200038f565b60408701519094506200041c816200038f565b60608701519093506001600160401b03808211156200043a57600080fd5b818801915088601f8301126200044f57600080fd5b815181811115620004645762000464620003ba565b8060051b604051601f19603f830116810181811085821117156200048c576200048c620003ba565b60405291825284820192508381018501918b831115620004ab57600080fd5b938501935b82851015620004d457620004c485620003a8565b84529385019392850192620004b0565b989b979a50959850505050505050565b634e487b7160e01b600052603260045260246000fd5b60805160a05160c05160e051610100516101205161014051611a4b620005636000396000818161027e015281816105f3015261091e01526000610b5301526000610ba201526000610b7d01526000610ad601526000610b0001526000610b2a0152611a4b6000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80634460bdd6116100975780639c82f2a4116100665780639c82f2a414610309578063a217fddf1461031c578063bdb0ca0914610324578063d547741f1461033757600080fd5b80634460bdd61461022b5780634e12aa9614610252578063634c7bb51461027957806391d14854146102c557600080fd5b806324941324116100d357806324941324146101d45780632f2ff15d146101fb5780633644e5151461021057806336568abe1461021857600080fd5b806301ffc9a7146100fa578063230d8a9014610122578063248a9ca3146101a3575b600080fd5b61010d610108366004611600565b61034a565b60405190151581526020015b60405180910390f35b60015461016a9073ffffffffffffffffffffffffffffffffffffffff8116907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1682565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff909116602083015201610119565b6101c66101b1366004611642565b60009081526020819052604090206001015490565b604051908152602001610119565b6101c67fc6f799190ca6c37eaf1ebcd7d2a3ffe1e2e8e4e6e75ec9258fdb069887d1d25281565b61020e610209366004611684565b6103e3565b005b6101c661040d565b61020e610226366004611684565b61041c565b6101c67f7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c4768981565b6101c67ff9613ae964a96e2d637718746f601ba0377249164a417c89d62a928eedc17a4f81565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610119565b61010d6102d3366004611684565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61020e6103173660046116b0565b6104d4565b6101c6600081565b61020e6103323660046116cb565b6105c5565b61020e610345366004611684565b61099a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103dd57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000828152602081905260409020600101546103fe816109bf565b61040883836109cc565b505050565b6000610417610abc565b905090565b73ffffffffffffffffffffffffffffffffffffffff811633146104c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6104d08282610bf0565b5050565b7f7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c476896104fe816109bf565b73ffffffffffffffffffffffffffffffffffffffff821661054b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f6b84ebb813c00306cef63ac87a457b9bde734f93d5a0e0c6fe72f87bae07e59a9060200160405180910390a15050565b6040517f6ba42aaa0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636ba42aaa906024016020604051808303816000875af1158015610651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106759190611764565b6106ab576040517f31f0290a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201825260015473ffffffffffffffffffffffffffffffffffffffff8116808352740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff166020830152915190916000917ff9613ae964a96e2d637718746f601ba0377249164a417c89d62a928eedc17a4f9190610734908a908a90611786565b60405190819003812060208087015161078b95949390910193845273ffffffffffffffffffffffffffffffffffffffff92909216602084015260408301526bffffffffffffffffffffffff16606082015260800190565b60405160208183030381529060405280519060200120905060006107ae82610ca7565b905060006107be82888888610d10565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fbe4287208e39f7d7837acc066ea95dbd82eabf6aa724a71a1bd9382d4d995747602052604090205490915060ff1661083f576040517f0c929e1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084015161084f9060016117c5565b600180546bffffffffffffffffffffffff92909216740100000000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff909216919091179055604080516020601f8b018190048102820181019092528981526108ef918b908b908190840183828082843760009201919091525050875173ffffffffffffffffffffffffffffffffffffffff1692915050610d38565b506040517f5feeb7940000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635feeb79490602401600060405180830381600087803b15801561097757600080fd5b505af115801561098b573d6000803e3d6000fd5b50505050505050505050505050565b6000828152602081905260409020600101546109b5816109bf565b6104088383610bf0565b6109c98133610d81565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166104d05760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610a5e3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015610b2257507f000000000000000000000000000000000000000000000000000000000000000046145b15610b4c57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156104d05760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006103dd610cb4610abc565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000610d2187878787610e51565b91509150610d2e81610f69565b5095945050505050565b6060610d7a83836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c656400008152506111bd565b9392505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166104d057610dd78173ffffffffffffffffffffffffffffffffffffffff1660146111d4565b610de28360206111d4565b604051602001610df3929190611815565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526104bd91600401611896565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610e885750600090506003610f60565b8460ff16601b14158015610ea057508460ff16601c14155b15610eb15750600090506004610f60565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610f05573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610f5957600060019250925050610f60565b9150600090505b94509492505050565b6000816004811115610f7d57610f7d6118e7565b03610f855750565b6001816004811115610f9957610f996118e7565b03611000576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104bd565b6002816004811115611014576110146118e7565b0361107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104bd565b600381600481111561108f5761108f6118e7565b0361111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104bd565b6004816004811115611130576111306118e7565b036109c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104bd565b60606111cc8484600085611417565b949350505050565b606060006111e3836002611916565b6111ee906002611953565b67ffffffffffffffff81111561120657611206611966565b6040519080825280601f01601f191660200182016040528015611230576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061126757611267611995565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106112ca576112ca611995565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611306846002611916565b611311906001611953565b90505b60018111156113ae577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061135257611352611995565b1a60f81b82828151811061136857611368611995565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936113a7816119c4565b9050611314565b508315610d7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016104bd565b6060824710156114a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104bd565b73ffffffffffffffffffffffffffffffffffffffff85163b611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104bd565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161155091906119f9565b60006040518083038185875af1925050503d806000811461158d576040519150601f19603f3d011682016040523d82523d6000602084013e611592565b606091505b50915091506115a28282866115ad565b979650505050505050565b606083156115bc575081610d7a565b8251156115cc5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bd9190611896565b60006020828403121561161257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d7a57600080fd5b60006020828403121561165457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461167f57600080fd5b919050565b6000806040838503121561169757600080fd5b823591506116a76020840161165b565b90509250929050565b6000602082840312156116c257600080fd5b610d7a8261165b565b6000806000806000608086880312156116e357600080fd5b853567ffffffffffffffff808211156116fb57600080fd5b818801915088601f83011261170f57600080fd5b81358181111561171e57600080fd5b89602082850101111561173057600080fd5b6020928301975095505086013560ff8116811461174c57600080fd5b94979396509394604081013594506060013592915050565b60006020828403121561177657600080fd5b81518015158114610d7a57600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6bffffffffffffffffffffffff8181168382160190808211156117ea576117ea611796565b5092915050565b60005b8381101561180c5781810151838201526020016117f4565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161184d8160178501602088016117f1565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161188a8160288401602088016117f1565b01602801949350505050565b60208152600082518060208401526118b58160408501602087016117f1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561194e5761194e611796565b500290565b808201808211156103dd576103dd611796565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000816119d3576119d3611796565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60008251611a0b8184602087016117f1565b919091019291505056fea26469706673582212202d6df2240862559ff1fa1cba16c9d281e1c83d3c10a597026efa906dff68ceb464736f6c63430008100033c6f799190ca6c37eaf1ebcd7d2a3ffe1e2e8e4e6e75ec9258fdb069887d1d2527613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c47689", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80634460bdd6116100975780639c82f2a4116100665780639c82f2a414610309578063a217fddf1461031c578063bdb0ca0914610324578063d547741f1461033757600080fd5b80634460bdd61461022b5780634e12aa9614610252578063634c7bb51461027957806391d14854146102c557600080fd5b806324941324116100d357806324941324146101d45780632f2ff15d146101fb5780633644e5151461021057806336568abe1461021857600080fd5b806301ffc9a7146100fa578063230d8a9014610122578063248a9ca3146101a3575b600080fd5b61010d610108366004611600565b61034a565b60405190151581526020015b60405180910390f35b60015461016a9073ffffffffffffffffffffffffffffffffffffffff8116907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1682565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff909116602083015201610119565b6101c66101b1366004611642565b60009081526020819052604090206001015490565b604051908152602001610119565b6101c67fc6f799190ca6c37eaf1ebcd7d2a3ffe1e2e8e4e6e75ec9258fdb069887d1d25281565b61020e610209366004611684565b6103e3565b005b6101c661040d565b61020e610226366004611684565b61041c565b6101c67f7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c4768981565b6101c67ff9613ae964a96e2d637718746f601ba0377249164a417c89d62a928eedc17a4f81565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610119565b61010d6102d3366004611684565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61020e6103173660046116b0565b6104d4565b6101c6600081565b61020e6103323660046116cb565b6105c5565b61020e610345366004611684565b61099a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103dd57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000828152602081905260409020600101546103fe816109bf565b61040883836109cc565b505050565b6000610417610abc565b905090565b73ffffffffffffffffffffffffffffffffffffffff811633146104c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6104d08282610bf0565b5050565b7f7613a25ecc738585a232ad50a301178f12b3ba8887d13e138b523c4269c476896104fe816109bf565b73ffffffffffffffffffffffffffffffffffffffff821661054b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f6b84ebb813c00306cef63ac87a457b9bde734f93d5a0e0c6fe72f87bae07e59a9060200160405180910390a15050565b6040517f6ba42aaa0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636ba42aaa906024016020604051808303816000875af1158015610651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106759190611764565b6106ab576040517f31f0290a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201825260015473ffffffffffffffffffffffffffffffffffffffff8116808352740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff166020830152915190916000917ff9613ae964a96e2d637718746f601ba0377249164a417c89d62a928eedc17a4f9190610734908a908a90611786565b60405190819003812060208087015161078b95949390910193845273ffffffffffffffffffffffffffffffffffffffff92909216602084015260408301526bffffffffffffffffffffffff16606082015260800190565b60405160208183030381529060405280519060200120905060006107ae82610ca7565b905060006107be82888888610d10565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fbe4287208e39f7d7837acc066ea95dbd82eabf6aa724a71a1bd9382d4d995747602052604090205490915060ff1661083f576040517f0c929e1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084015161084f9060016117c5565b600180546bffffffffffffffffffffffff92909216740100000000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff909216919091179055604080516020601f8b018190048102820181019092528981526108ef918b908b908190840183828082843760009201919091525050875173ffffffffffffffffffffffffffffffffffffffff1692915050610d38565b506040517f5feeb7940000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635feeb79490602401600060405180830381600087803b15801561097757600080fd5b505af115801561098b573d6000803e3d6000fd5b50505050505050505050505050565b6000828152602081905260409020600101546109b5816109bf565b6104088383610bf0565b6109c98133610d81565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166104d05760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610a5e3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015610b2257507f000000000000000000000000000000000000000000000000000000000000000046145b15610b4c57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156104d05760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006103dd610cb4610abc565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000610d2187878787610e51565b91509150610d2e81610f69565b5095945050505050565b6060610d7a83836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c656400008152506111bd565b9392505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166104d057610dd78173ffffffffffffffffffffffffffffffffffffffff1660146111d4565b610de28360206111d4565b604051602001610df3929190611815565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526104bd91600401611896565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610e885750600090506003610f60565b8460ff16601b14158015610ea057508460ff16601c14155b15610eb15750600090506004610f60565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610f05573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610f5957600060019250925050610f60565b9150600090505b94509492505050565b6000816004811115610f7d57610f7d6118e7565b03610f855750565b6001816004811115610f9957610f996118e7565b03611000576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104bd565b6002816004811115611014576110146118e7565b0361107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104bd565b600381600481111561108f5761108f6118e7565b0361111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104bd565b6004816004811115611130576111306118e7565b036109c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104bd565b60606111cc8484600085611417565b949350505050565b606060006111e3836002611916565b6111ee906002611953565b67ffffffffffffffff81111561120657611206611966565b6040519080825280601f01601f191660200182016040528015611230576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061126757611267611995565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106112ca576112ca611995565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611306846002611916565b611311906001611953565b90505b60018111156113ae577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061135257611352611995565b1a60f81b82828151811061136857611368611995565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936113a7816119c4565b9050611314565b508315610d7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016104bd565b6060824710156114a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104bd565b73ffffffffffffffffffffffffffffffffffffffff85163b611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104bd565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161155091906119f9565b60006040518083038185875af1925050503d806000811461158d576040519150601f19603f3d011682016040523d82523d6000602084013e611592565b606091505b50915091506115a28282866115ad565b979650505050505050565b606083156115bc575081610d7a565b8251156115cc5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bd9190611896565b60006020828403121561161257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d7a57600080fd5b60006020828403121561165457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461167f57600080fd5b919050565b6000806040838503121561169757600080fd5b823591506116a76020840161165b565b90509250929050565b6000602082840312156116c257600080fd5b610d7a8261165b565b6000806000806000608086880312156116e357600080fd5b853567ffffffffffffffff808211156116fb57600080fd5b818801915088601f83011261170f57600080fd5b81358181111561171e57600080fd5b89602082850101111561173057600080fd5b6020928301975095505086013560ff8116811461174c57600080fd5b94979396509394604081013594506060013592915050565b60006020828403121561177657600080fd5b81518015158114610d7a57600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6bffffffffffffffffffffffff8181168382160190808211156117ea576117ea611796565b5092915050565b60005b8381101561180c5781810151838201526020016117f4565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161184d8160178501602088016117f1565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161188a8160288401602088016117f1565b01602801949350505050565b60208152600082518060208401526118b58160408501602087016117f1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561194e5761194e611796565b500290565b808201808211156103dd576103dd611796565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000816119d3576119d3611796565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60008251611a0b8184602087016117f1565b919091019291505056fea26469706673582212202d6df2240862559ff1fa1cba16c9d281e1c83d3c10a597026efa906dff68ceb464736f6c63430008100033", "linkReferences": {}, "deployedLinkReferences": {} }