{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC4626Oracle",
  "sourceName": "contracts/oracles/ERC4626Oracle.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "correlatedToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "underlyingToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "resilientOracle",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "annualGrowthRate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_snapshotInterval",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "initialSnapshotMaxExchangeRate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "initialSnapshotTimestamp",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "accessControlManager",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_snapshotGap",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "InvalidGrowthRate",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialSnapshot",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidSnapshotMaxExchangeRate",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidTokenAddress",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "calledContract",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "methodSignature",
          "type": "string"
        }
      ],
      "name": "Unauthorized",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroAddressNotAllowed",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "oldGrowthRatePerSecond",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "newGrowthRatePerSecond",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "oldSnapshotInterval",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newSnapshotInterval",
          "type": "uint256"
        }
      ],
      "name": "GrowthRateUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "oldSnapshotGap",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "newSnapshotGap",
          "type": "uint256"
        }
      ],
      "name": "SnapshotGapUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "maxExchangeRate",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "SnapshotUpdated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ACCESS_CONTROL_MANAGER",
      "outputs": [
        {
          "internalType": "contract IAccessControlManagerV8",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "CORRELATED_TOKEN",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ONE_CORRELATED_TOKEN",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "RESILIENT_ORACLE",
      "outputs": [
        {
          "internalType": "contract ResilientOracleInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UNDERLYING_TOKEN",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMaxAllowedExchangeRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "asset",
          "type": "address"
        }
      ],
      "name": "getPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getUnderlyingAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "growthRatePerSecond",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isCapped",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_annualGrowthRate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_snapshotInterval",
          "type": "uint256"
        }
      ],
      "name": "setGrowthRate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_snapshotMaxExchangeRate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_snapshotTimestamp",
          "type": "uint256"
        }
      ],
      "name": "setSnapshot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_snapshotGap",
          "type": "uint256"
        }
      ],
      "name": "setSnapshotGap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "snapshotGap",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "snapshotInterval",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "snapshotMaxExchangeRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "snapshotTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "updateSnapshot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x610120604052348015610010575f80fd5b506040516112a03803806112a083398101604081905261002f916101f8565b8888888888888888886100466301e13380876102e0565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c58961018d565b6100ce8861018d565b6100d78761018d565b6100e08261018d565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004918255821660e0526040805163313ce56760e01b81529051928c169263313ce567928281019260209291908290030181865afa15801561014b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016f9190610307565b61017a90600a61043c565b610100525061044f975050505050505050565b6001600160a01b0381166101b4576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b6101d2816101b7565b81146101b4575f80fd5b80516101c3816101c9565b806101d2565b80516101c3816101e7565b5f805f805f805f805f6101208a8c031215610214576102145f80fd5b5f61021f8c8c6101dc565b99505060206102308c828d016101dc565b98505060406102418c828d016101dc565b97505060606102528c828d016101ed565b96505060806102638c828d016101ed565b95505060a06102748c828d016101ed565b94505060c06102858c828d016101ed565b93505060e06102968c828d016101dc565b9250506101006102a88c828d016101ed565b9150509295985092959850929598565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f826102ee576102ee6102b8565b500490565b60ff81166101d2565b80516101c3816102f3565b5f6020828403121561031a5761031a5f80fd5b5f61032584846102fc565b949350505050565b80825b600185111561036c5780860481111561034b5761034b6102cc565b600185161561035957908102905b80026103658560011c90565b9450610330565b94509492505050565b5f8261038357506001610435565b8161038f57505f610435565b81600181146103a557600281146103af576103dc565b6001915050610435565b60ff8411156103c0576103c06102cc565b8360020a9150848211156103d6576103d66102cc565b50610435565b5060208310610133831016604e8410600b841016171561040f575081810a8381111561040a5761040a6102cc565b610435565b61041c848484600161032d565b92509050818404811115610432576104326102cc565b81025b9392505050565b5f60ff831692506104355f198484610375565b60805160a05160c05160e05161010051610dd56104cb5f395f818161024501526106ea01525f8181610189015261091401525f81816102750152818161057401526107a701525f8181610139015281816105a101526107d601525f818161020b015281816102b2015281816106bd01526108550152610dd55ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e5780639c43eb541161006e5780639c43eb5414610267578063a4edcd4c14610270578063abb8561314610297578063ac5a693e1461029f578063bdf13af2146102a7575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d57806386f23a7514610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b91906109c5565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109f2565b61011e60045481565b61011e61017f366004610a21565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a64565b6101cb6101c6366004610a83565b610360565b005b61011e60025481565b6101cb6101e4366004610aa1565b6103d1565b6101f16104a5565b60405161012b9190610ae3565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610aa1565b61062c565b61011e7f000000000000000000000000000000000000000000000000000000000000000081565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e610756565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f816107a3565b9392505050565b5f61032f610756565b90505f818311801561034057508115155b61034a578261034c565b815b9050610357816107a3565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108fb565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108fb565b5f5461041f6301e1338084610b19565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161049691906109c5565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd610756565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b2c565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f610517610756565b9050600454818311610529578261052b565b815b6105359190610b3f565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109f2565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108fb565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b6040516303d1689d60e11b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307a2d13a90610712907f0000000000000000000000000000000000000000000000000000000000000000906004016109c5565b602060405180830381865afa15801561072d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107519190610b5d565b905090565b5f80600354426107669190610b2c565b90505f670de0b6b3a7640000825f546002546107829190610b7b565b61078c9190610b7b565b6107969190610b19565b60025461031f9190610b3f565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081191906109f2565b602060405180830381865afa15801561082c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108509190610b5d565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d79190610bae565b60ff1690506108e781600a610cd8565b6108f18487610b7b565b6103579190610b19565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab9061094b9033908690600401610d21565b602060405180830381865afa158015610966573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098a9190610d54565b9050806109b957333083604051634a3fa29360e01b81526004016109b093929190610d72565b60405180910390fd5b5050565b805b82525050565b602081016109d382846109bd565b92915050565b5f6001600160a01b0382166109d3565b6109bf816109d9565b602081016109d382846109e9565b610a09816109d9565b8114610a13575f80fd5b50565b80356109d381610a00565b5f60208284031215610a3457610a345f80fd5b5f610a3f8484610a16565b949350505050565b5f6109d3826109d9565b5f6109d382610a47565b6109bf81610a51565b602081016109d38284610a5b565b80610a09565b80356109d381610a72565b5f60208284031215610a9657610a965f80fd5b5f610a3f8484610a78565b5f8060408385031215610ab557610ab55f80fd5b5f610ac08585610a78565b9250506020610ad185828601610a78565b9150509250929050565b8015156109bf565b602081016109d38284610adb565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b2757610b27610af1565b500490565b818103818111156109d3576109d3610b05565b808201808211156109d3576109d3610b05565b80516109d381610a72565b5f60208284031215610b7057610b705f80fd5b5f610a3f8484610b52565b818102808215838204851417610b9357610b93610b05565b5092915050565b60ff8116610a09565b80516109d381610b9a565b5f60208284031215610bc157610bc15f80fd5b5f610a3f8484610ba3565b80825b6001851115610c0b57808604811115610bea57610bea610b05565b6001851615610bf857908102905b8002610c048560011c90565b9450610bcf565b94509492505050565b5f82610c225750600161031f565b81610c2e57505f61031f565b8160018114610c445760028114610c4e57610c7b565b600191505061031f565b60ff841115610c5f57610c5f610b05565b8360020a915084821115610c7557610c75610b05565b5061031f565b5060208310610133831016604e8410600b8410161715610cae575081810a83811115610ca957610ca9610b05565b61031f565b610cbb8484846001610bcc565b92509050818404811115610cd157610cd1610b05565b0292915050565b5f61031f5f198484610c14565b8281835e505f910152565b5f610cf9825190565b808452602084019350610d10818560208601610ce5565b601f01601f19169290920192915050565b60408101610d2f82856109e9565b8181036020830152610a3f8184610cf0565b801515610a09565b80516109d381610d41565b5f60208284031215610d6757610d675f80fd5b5f610a3f8484610d49565b60608101610d8082866109e9565b610d8d60208301856109e9565b81810360408301526103578184610cf056fea2646970667358221220679da16a2e86bdb8fb0ba394d7bbfa8f4dbeaf8aff49fe7cffd1b51c5d69154a64736f6c63430008190033",
  "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e5780639c43eb541161006e5780639c43eb5414610267578063a4edcd4c14610270578063abb8561314610297578063ac5a693e1461029f578063bdf13af2146102a7575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d57806386f23a7514610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b91906109c5565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109f2565b61011e60045481565b61011e61017f366004610a21565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a64565b6101cb6101c6366004610a83565b610360565b005b61011e60025481565b6101cb6101e4366004610aa1565b6103d1565b6101f16104a5565b60405161012b9190610ae3565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610aa1565b61062c565b61011e7f000000000000000000000000000000000000000000000000000000000000000081565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e610756565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f816107a3565b9392505050565b5f61032f610756565b90505f818311801561034057508115155b61034a578261034c565b815b9050610357816107a3565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108fb565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108fb565b5f5461041f6301e1338084610b19565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161049691906109c5565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd610756565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b2c565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f610517610756565b9050600454818311610529578261052b565b815b6105359190610b3f565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109f2565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108fb565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b6040516303d1689d60e11b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307a2d13a90610712907f0000000000000000000000000000000000000000000000000000000000000000906004016109c5565b602060405180830381865afa15801561072d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107519190610b5d565b905090565b5f80600354426107669190610b2c565b90505f670de0b6b3a7640000825f546002546107829190610b7b565b61078c9190610b7b565b6107969190610b19565b60025461031f9190610b3f565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081191906109f2565b602060405180830381865afa15801561082c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108509190610b5d565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d79190610bae565b60ff1690506108e781600a610cd8565b6108f18487610b7b565b6103579190610b19565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab9061094b9033908690600401610d21565b602060405180830381865afa158015610966573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098a9190610d54565b9050806109b957333083604051634a3fa29360e01b81526004016109b093929190610d72565b60405180910390fd5b5050565b805b82525050565b602081016109d382846109bd565b92915050565b5f6001600160a01b0382166109d3565b6109bf816109d9565b602081016109d382846109e9565b610a09816109d9565b8114610a13575f80fd5b50565b80356109d381610a00565b5f60208284031215610a3457610a345f80fd5b5f610a3f8484610a16565b949350505050565b5f6109d3826109d9565b5f6109d382610a47565b6109bf81610a51565b602081016109d38284610a5b565b80610a09565b80356109d381610a72565b5f60208284031215610a9657610a965f80fd5b5f610a3f8484610a78565b5f8060408385031215610ab557610ab55f80fd5b5f610ac08585610a78565b9250506020610ad185828601610a78565b9150509250929050565b8015156109bf565b602081016109d38284610adb565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b2757610b27610af1565b500490565b818103818111156109d3576109d3610b05565b808201808211156109d3576109d3610b05565b80516109d381610a72565b5f60208284031215610b7057610b705f80fd5b5f610a3f8484610b52565b818102808215838204851417610b9357610b93610b05565b5092915050565b60ff8116610a09565b80516109d381610b9a565b5f60208284031215610bc157610bc15f80fd5b5f610a3f8484610ba3565b80825b6001851115610c0b57808604811115610bea57610bea610b05565b6001851615610bf857908102905b8002610c048560011c90565b9450610bcf565b94509492505050565b5f82610c225750600161031f565b81610c2e57505f61031f565b8160018114610c445760028114610c4e57610c7b565b600191505061031f565b60ff841115610c5f57610c5f610b05565b8360020a915084821115610c7557610c75610b05565b5061031f565b5060208310610133831016604e8410600b8410161715610cae575081810a83811115610ca957610ca9610b05565b61031f565b610cbb8484846001610bcc565b92509050818404811115610cd157610cd1610b05565b0292915050565b5f61031f5f198484610c14565b8281835e505f910152565b5f610cf9825190565b808452602084019350610d10818560208601610ce5565b601f01601f19169290920192915050565b60408101610d2f82856109e9565b8181036020830152610a3f8184610cf0565b801515610a09565b80516109d381610d41565b5f60208284031215610d6757610d675f80fd5b5f610a3f8484610d49565b60608101610d8082866109e9565b610d8d60208301856109e9565b81810360408301526103578184610cf056fea2646970667358221220679da16a2e86bdb8fb0ba394d7bbfa8f4dbeaf8aff49fe7cffd1b51c5d69154a64736f6c63430008190033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
