{
    "_format": "hh-sol-artifact-1",
    "contractName": "StakingAllocation",
    "sourceName": "contracts/StakingAllocation.sol",
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint8",
                    "name": "version",
                    "type": "uint8"
                }
            ],
            "name": "Initialized",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "runner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "end",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "time",
                    "type": "uint256"
                }
            ],
            "name": "OverAllocationEnded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "runner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "start",
                    "type": "uint256"
                }
            ],
            "name": "OverAllocationStarted",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "deploymentId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "runner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "StakeAllocationAdded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "deploymentId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "runner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "StakeAllocationRemoved",
            "type": "event"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_deployment",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "_runner",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_amount",
                    "type": "uint256"
                }
            ],
            "name": "addAllocation",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                },
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "name": "allocatedTokens",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "name": "deploymentAllocations",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "contract ISettings",
                    "name": "_settings",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_runner",
                    "type": "address"
                }
            ],
            "name": "isOverAllocation",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_deploymentFrom",
                    "type": "bytes32"
                },
                {
                    "internalType": "bytes32",
                    "name": "_deploymentTo",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "_runner",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_amount",
                    "type": "uint256"
                }
            ],
            "name": "moveAllocation",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_runner",
                    "type": "address"
                }
            ],
            "name": "onStakeUpdate",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_runner",
                    "type": "address"
                }
            ],
            "name": "overAllocationTime",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_deployment",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "_runner",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_amount",
                    "type": "uint256"
                }
            ],
            "name": "removeAllocation",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_runner",
                    "type": "address"
                }
            ],
            "name": "runnerAllocation",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "total",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "used",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "overflowTime",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "overflowAt",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct RunnerAllocation",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "contract ISettings",
                    "name": "_settings",
                    "type": "address"
                }
            ],
            "name": "setSettings",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "settings",
            "outputs": [
                {
                    "internalType": "contract ISettings",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "_deployment",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "_runner",
                    "type": "address"
                }
            ],
            "name": "stopService",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x608060405234801561001057600080fd5b5061145b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063a01d3c2c11610097578063ce4c336711610066578063ce4c33671461027d578063e06174e414610290578063e7aceace146102a3578063f2fde38b146102c357600080fd5b8063a01d3c2c146101d1578063b838943d146101e4578063c4d66de81461022a578063c53914b41461023d57600080fd5b8063715018a6116100d3578063715018a61461017e5780638a88361e146101865780638da5cb5b146101995780639b2a560e146101be57600080fd5b80630f521f981461010557806337c48184146101435780633d7a49021461015857806346e7b4a21461016b575b600080fd5b6101306101133660046111ed565b606760209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610156610151366004611219565b6102d6565b005b610156610166366004611219565b61036f565b610156610179366004611251565b61051c565b61015661060a565b610130610194366004611281565b61061e565b6033546001600160a01b03165b6040516001600160a01b03909116815260200161013a565b6101566101cc36600461129e565b61069f565b6101566101df366004611281565b61076c565b6101f76101f2366004611281565b610796565b60405161013a91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b610156610238366004611281565b61080f565b61026d61024b366004611281565b6001600160a01b03166000908152606660205260409020600181015490541090565b604051901515815260200161013a565b61015661028b366004611281565b61093c565b6065546101a6906001600160a01b031681565b6101306102b13660046112dd565b60686020526000908152604090205481565b6101566102d1366004611281565b610bfb565b6102df82610c74565b6103045760405162461bcd60e51b81526004016102fb906112f6565b60405180910390fd5b6001600160a01b038216600090815260676020908152604080832086845290915290205481111561035f5760405162461bcd60e51b815260206004820152600560248201526414d0530c0d60da1b60448201526064016102fb565b61036a838383610d84565b505050565b61037882610c74565b6103945760405162461bcd60e51b81526004016102fb906112f6565b60655460405163f4e5699160e01b81526001600160a01b039091169063f4e56991906103c4906004908101611315565b602060405180830381865afa1580156103e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610405919061133d565b604051623a9ac960e51b8152600481018590526001600160a01b0384811660248301529190911690630753592090604401602060405180830381865afa158015610453573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610477919061135a565b6104ab5760405162461bcd60e51b815260206004820152600560248201526453414c303560d81b60448201526064016102fb565b6001600160a01b03821660009081526066602052604090206001810154815483916104d591611392565b101561050b5760405162461bcd60e51b815260206004820152600560248201526453414c303360d81b60448201526064016102fb565b610516848484610f12565b50505050565b60655460405163f4e5699160e01b81526001600160a01b039091169063f4e569919061054c906004908101611315565b602060405180830381865afa158015610569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058d919061133d565b6001600160a01b0316336001600160a01b0316146105d55760405162461bcd60e51b815260206004820152600560248201526429a0a6181b60d91b60448201526064016102fb565b6001600160a01b0381166000908152606760209081526040808320858452909152902054801561036a5761036a838383610d84565b610612610fef565b61061c6000611049565b565b6001600160a01b0381166000908152606660209081526040808320815160808101835281548082526001830154948201859052600283015493820193909352600390910154606082015291111561069557806060015142826040015161068491906113a9565b61068e9190611392565b9392505050565b6040015192915050565b6106a882610c74565b6106c45760405162461bcd60e51b81526004016102fb906112f6565b6001600160a01b038216600090815260676020908152604080832087845290915290205481111561071f5760405162461bcd60e51b815260206004820152600560248201526414d0530c0d60da1b60448201526064016102fb565b8284036107565760405162461bcd60e51b815260206004820152600560248201526453414c303760d81b60448201526064016102fb565b610761848383610d84565b610516838383610f12565b610774610fef565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6107c16040518060800160405280600081526020016000815260200160008152602001600081525090565b506001600160a01b0316600090815260666020908152604091829020825160808101845281548152600182015492810192909252600281015492820192909252600390910154606082015290565b600054610100900460ff161580801561082f5750600054600160ff909116105b806108495750303b158015610849575060005460ff166001145b6108ac5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102fb565b6000805460ff1916600117905580156108cf576000805461ff0019166101001790555b6108d761109b565b606580546001600160a01b0319166001600160a01b0384161790558015610938576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60655460405163f4e5699160e01b81526001600160a01b039091169063f4e569919061096d90600a90600401611315565b602060405180830381865afa15801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae919061133d565b6001600160a01b0316336001600160a01b0316146109f65760405162461bcd60e51b815260206004820152600560248201526453414c303160d81b60448201526064016102fb565b6001600160a01b0380821660009081526066602052604090819020606554915163f4e5699160e01b81529092919091169063f4e5699190610a3c90600290600401611315565b602060405180830381865afa158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d919061133d565b604051631a9248a960e31b81526001600160a01b038481166004830152919091169063d492454890602401602060405180830381865afa158015610ac5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae991906113c1565b81556003810154158015610b01575060018101548154105b15610b5157604080516001600160a01b03841681524260208201527fc9ea04184430c001ccdd1d8822012cdc14dca0f92145afb6f749d99293a4c0aa910160405180910390a14260038201555050565b600381015415801590610b6957506001810154815410155b15610938577f1194ffa72f9e16e30edefc29471099a808b3cd45ae9d31c0b7b51409b54b325b8242836003015442610ba19190611392565b604080516001600160a01b03909416845260208401929092529082015260600160405180910390a16003810154610bd89042611392565b816002016000828254610beb91906113a9565b9091555050600060038201555050565b610c03610fef565b6001600160a01b038116610c685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102fb565b610c7181611049565b50565b60655460405163f4e5699160e01b815260009182916001600160a01b039091169063f4e5699190610caa90600390600401611315565b602060405180830381865afa158015610cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ceb919061133d565b604051634463315560e11b81526001600160a01b0385811660048301529192506000918316906388c662aa90602401602060405180830381865afa158015610d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5b919061133d565b9050336001600160a01b0385161480610d7c5750336001600160a01b038216145b949350505050565b610d8e83836110ca565b6001600160a01b038216600090815260666020526040812060018101805491928492610dbb908490611392565b909155505060008481526068602052604081208054849290610dde908490611392565b90915550506001600160a01b038316600090815260676020908152604080832087845290915281208054849290610e16908490611392565b9091555050600381015415801590610e3357506001810154815410155b15610ec2577f1194ffa72f9e16e30edefc29471099a808b3cd45ae9d31c0b7b51409b54b325b8342836003015442610e6b9190611392565b604080516001600160a01b03909416845260208401929092529082015260600160405180910390a16003810154610ea29042611392565b816002016000828254610eb591906113a9565b9091555050600060038201555b604080518581526001600160a01b03851660208201529081018390527f8ae801ea15de38a7729d840c89ff289462b8a0206e3e8502450e2310d2879278906060015b60405180910390a150505050565b610f1c83836110ca565b6001600160a01b038216600090815260666020526040812060018101805491928492610f499084906113a9565b909155505060008481526068602052604081208054849290610f6c9084906113a9565b90915550506001600160a01b038316600090815260676020908152604080832087845290915281208054849290610fa49084906113a9565b9091555050604080518581526001600160a01b03851660208201529081018390527f4fcae36990d257c8e062d8de43254930ecd770fff8f94b2f5056ec77bb77649490606001610f04565b6033546001600160a01b0316331461061c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102fb565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166110c25760405162461bcd60e51b81526004016102fb906113da565b61061c6111a8565b60655460405163f4e5699160e01b81526000916001600160a01b03169063f4e56991906110fc90601390600401611315565b602060405180830381865afa158015611119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113d919061133d565b604051633035598b60e21b8152600481018590526001600160a01b0384811660248301529192509082169063c0d5662c90604401600060405180830381600087803b15801561118b57600080fd5b505af115801561119f573d6000803e3d6000fd5b50505050505050565b600054610100900460ff166111cf5760405162461bcd60e51b81526004016102fb906113da565b61061c33611049565b6001600160a01b0381168114610c7157600080fd5b6000806040838503121561120057600080fd5b823561120b816111d8565b946020939093013593505050565b60008060006060848603121561122e57600080fd5b833592506020840135611240816111d8565b929592945050506040919091013590565b6000806040838503121561126457600080fd5b823591506020830135611276816111d8565b809150509250929050565b60006020828403121561129357600080fd5b813561068e816111d8565b600080600080608085870312156112b457600080fd5b843593506020850135925060408501356112cd816111d8565b9396929550929360600135925050565b6000602082840312156112ef57600080fd5b5035919050565b60208082526005908201526429a0a6181960d91b604082015260600190565b602081016015831061133757634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561134f57600080fd5b815161068e816111d8565b60006020828403121561136c57600080fd5b8151801515811461068e57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156113a4576113a461137c565b500390565b600082198211156113bc576113bc61137c565b500190565b6000602082840312156113d357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220a68e8c8a298902c368ca2473675f0012be94362a1534733d2349cbb7d847b6d664736f6c634300080f0033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063a01d3c2c11610097578063ce4c336711610066578063ce4c33671461027d578063e06174e414610290578063e7aceace146102a3578063f2fde38b146102c357600080fd5b8063a01d3c2c146101d1578063b838943d146101e4578063c4d66de81461022a578063c53914b41461023d57600080fd5b8063715018a6116100d3578063715018a61461017e5780638a88361e146101865780638da5cb5b146101995780639b2a560e146101be57600080fd5b80630f521f981461010557806337c48184146101435780633d7a49021461015857806346e7b4a21461016b575b600080fd5b6101306101133660046111ed565b606760209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610156610151366004611219565b6102d6565b005b610156610166366004611219565b61036f565b610156610179366004611251565b61051c565b61015661060a565b610130610194366004611281565b61061e565b6033546001600160a01b03165b6040516001600160a01b03909116815260200161013a565b6101566101cc36600461129e565b61069f565b6101566101df366004611281565b61076c565b6101f76101f2366004611281565b610796565b60405161013a91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b610156610238366004611281565b61080f565b61026d61024b366004611281565b6001600160a01b03166000908152606660205260409020600181015490541090565b604051901515815260200161013a565b61015661028b366004611281565b61093c565b6065546101a6906001600160a01b031681565b6101306102b13660046112dd565b60686020526000908152604090205481565b6101566102d1366004611281565b610bfb565b6102df82610c74565b6103045760405162461bcd60e51b81526004016102fb906112f6565b60405180910390fd5b6001600160a01b038216600090815260676020908152604080832086845290915290205481111561035f5760405162461bcd60e51b815260206004820152600560248201526414d0530c0d60da1b60448201526064016102fb565b61036a838383610d84565b505050565b61037882610c74565b6103945760405162461bcd60e51b81526004016102fb906112f6565b60655460405163f4e5699160e01b81526001600160a01b039091169063f4e56991906103c4906004908101611315565b602060405180830381865afa1580156103e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610405919061133d565b604051623a9ac960e51b8152600481018590526001600160a01b0384811660248301529190911690630753592090604401602060405180830381865afa158015610453573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610477919061135a565b6104ab5760405162461bcd60e51b815260206004820152600560248201526453414c303560d81b60448201526064016102fb565b6001600160a01b03821660009081526066602052604090206001810154815483916104d591611392565b101561050b5760405162461bcd60e51b815260206004820152600560248201526453414c303360d81b60448201526064016102fb565b610516848484610f12565b50505050565b60655460405163f4e5699160e01b81526001600160a01b039091169063f4e569919061054c906004908101611315565b602060405180830381865afa158015610569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058d919061133d565b6001600160a01b0316336001600160a01b0316146105d55760405162461bcd60e51b815260206004820152600560248201526429a0a6181b60d91b60448201526064016102fb565b6001600160a01b0381166000908152606760209081526040808320858452909152902054801561036a5761036a838383610d84565b610612610fef565b61061c6000611049565b565b6001600160a01b0381166000908152606660209081526040808320815160808101835281548082526001830154948201859052600283015493820193909352600390910154606082015291111561069557806060015142826040015161068491906113a9565b61068e9190611392565b9392505050565b6040015192915050565b6106a882610c74565b6106c45760405162461bcd60e51b81526004016102fb906112f6565b6001600160a01b038216600090815260676020908152604080832087845290915290205481111561071f5760405162461bcd60e51b815260206004820152600560248201526414d0530c0d60da1b60448201526064016102fb565b8284036107565760405162461bcd60e51b815260206004820152600560248201526453414c303760d81b60448201526064016102fb565b610761848383610d84565b610516838383610f12565b610774610fef565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6107c16040518060800160405280600081526020016000815260200160008152602001600081525090565b506001600160a01b0316600090815260666020908152604091829020825160808101845281548152600182015492810192909252600281015492820192909252600390910154606082015290565b600054610100900460ff161580801561082f5750600054600160ff909116105b806108495750303b158015610849575060005460ff166001145b6108ac5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102fb565b6000805460ff1916600117905580156108cf576000805461ff0019166101001790555b6108d761109b565b606580546001600160a01b0319166001600160a01b0384161790558015610938576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60655460405163f4e5699160e01b81526001600160a01b039091169063f4e569919061096d90600a90600401611315565b602060405180830381865afa15801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae919061133d565b6001600160a01b0316336001600160a01b0316146109f65760405162461bcd60e51b815260206004820152600560248201526453414c303160d81b60448201526064016102fb565b6001600160a01b0380821660009081526066602052604090819020606554915163f4e5699160e01b81529092919091169063f4e5699190610a3c90600290600401611315565b602060405180830381865afa158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d919061133d565b604051631a9248a960e31b81526001600160a01b038481166004830152919091169063d492454890602401602060405180830381865afa158015610ac5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae991906113c1565b81556003810154158015610b01575060018101548154105b15610b5157604080516001600160a01b03841681524260208201527fc9ea04184430c001ccdd1d8822012cdc14dca0f92145afb6f749d99293a4c0aa910160405180910390a14260038201555050565b600381015415801590610b6957506001810154815410155b15610938577f1194ffa72f9e16e30edefc29471099a808b3cd45ae9d31c0b7b51409b54b325b8242836003015442610ba19190611392565b604080516001600160a01b03909416845260208401929092529082015260600160405180910390a16003810154610bd89042611392565b816002016000828254610beb91906113a9565b9091555050600060038201555050565b610c03610fef565b6001600160a01b038116610c685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102fb565b610c7181611049565b50565b60655460405163f4e5699160e01b815260009182916001600160a01b039091169063f4e5699190610caa90600390600401611315565b602060405180830381865afa158015610cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ceb919061133d565b604051634463315560e11b81526001600160a01b0385811660048301529192506000918316906388c662aa90602401602060405180830381865afa158015610d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5b919061133d565b9050336001600160a01b0385161480610d7c5750336001600160a01b038216145b949350505050565b610d8e83836110ca565b6001600160a01b038216600090815260666020526040812060018101805491928492610dbb908490611392565b909155505060008481526068602052604081208054849290610dde908490611392565b90915550506001600160a01b038316600090815260676020908152604080832087845290915281208054849290610e16908490611392565b9091555050600381015415801590610e3357506001810154815410155b15610ec2577f1194ffa72f9e16e30edefc29471099a808b3cd45ae9d31c0b7b51409b54b325b8342836003015442610e6b9190611392565b604080516001600160a01b03909416845260208401929092529082015260600160405180910390a16003810154610ea29042611392565b816002016000828254610eb591906113a9565b9091555050600060038201555b604080518581526001600160a01b03851660208201529081018390527f8ae801ea15de38a7729d840c89ff289462b8a0206e3e8502450e2310d2879278906060015b60405180910390a150505050565b610f1c83836110ca565b6001600160a01b038216600090815260666020526040812060018101805491928492610f499084906113a9565b909155505060008481526068602052604081208054849290610f6c9084906113a9565b90915550506001600160a01b038316600090815260676020908152604080832087845290915281208054849290610fa49084906113a9565b9091555050604080518581526001600160a01b03851660208201529081018390527f4fcae36990d257c8e062d8de43254930ecd770fff8f94b2f5056ec77bb77649490606001610f04565b6033546001600160a01b0316331461061c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102fb565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166110c25760405162461bcd60e51b81526004016102fb906113da565b61061c6111a8565b60655460405163f4e5699160e01b81526000916001600160a01b03169063f4e56991906110fc90601390600401611315565b602060405180830381865afa158015611119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113d919061133d565b604051633035598b60e21b8152600481018590526001600160a01b0384811660248301529192509082169063c0d5662c90604401600060405180830381600087803b15801561118b57600080fd5b505af115801561119f573d6000803e3d6000fd5b50505050505050565b600054610100900460ff166111cf5760405162461bcd60e51b81526004016102fb906113da565b61061c33611049565b6001600160a01b0381168114610c7157600080fd5b6000806040838503121561120057600080fd5b823561120b816111d8565b946020939093013593505050565b60008060006060848603121561122e57600080fd5b833592506020840135611240816111d8565b929592945050506040919091013590565b6000806040838503121561126457600080fd5b823591506020830135611276816111d8565b809150509250929050565b60006020828403121561129357600080fd5b813561068e816111d8565b600080600080608085870312156112b457600080fd5b843593506020850135925060408501356112cd816111d8565b9396929550929360600135925050565b6000602082840312156112ef57600080fd5b5035919050565b60208082526005908201526429a0a6181960d91b604082015260600190565b602081016015831061133757634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561134f57600080fd5b815161068e816111d8565b60006020828403121561136c57600080fd5b8151801515811461068e57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156113a4576113a461137c565b500390565b600082198211156113bc576113bc61137c565b500190565b6000602082840312156113d357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220a68e8c8a298902c368ca2473675f0012be94362a1534733d2349cbb7d847b6d664736f6c634300080f0033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
