{
  "_format": "hh-sol-artifact-1",
  "contractName": "UiPoolDataProvider",
  "sourceName": "contracts/misc/UiPoolDataProvider.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IAaveIncentivesController",
          "name": "_incentivesController",
          "type": "address"
        },
        {
          "internalType": "contract IPriceOracleGetter",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "MOCK_USD_ADDRESS",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ILendingPoolAddressesProvider",
          "name": "provider",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "getReservesData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "underlyingAsset",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "symbol",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "decimals",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "baseLTVasCollateral",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reserveLiquidationThreshold",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reserveLiquidationBonus",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reserveFactor",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "usageAsCollateralEnabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "borrowingEnabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "stableBorrowRateEnabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "isActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "isFrozen",
              "type": "bool"
            },
            {
              "internalType": "uint128",
              "name": "liquidityIndex",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "variableBorrowIndex",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "liquidityRate",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "variableBorrowRate",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "stableBorrowRate",
              "type": "uint128"
            },
            {
              "internalType": "uint40",
              "name": "lastUpdateTimestamp",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "aTokenAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "stableDebtTokenAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "variableDebtTokenAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "interestRateStrategyAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "availableLiquidity",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "totalPrincipalStableDebt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "averageStableRate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stableDebtLastUpdateTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "totalScaledVariableDebt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "priceInEth",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "variableRateSlope1",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "variableRateSlope2",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stableRateSlope1",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stableRateSlope2",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "aEmissionPerSecond",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vEmissionPerSecond",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sEmissionPerSecond",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "aIncentivesLastUpdateTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vIncentivesLastUpdateTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sIncentivesLastUpdateTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "aTokenIncentivesIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vTokenIncentivesIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sTokenIncentivesIndex",
              "type": "uint256"
            }
          ],
          "internalType": "struct IUiPoolDataProvider.AggregatedReserveData[]",
          "name": "",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "underlyingAsset",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "scaledATokenBalance",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "usageAsCollateralEnabledOnUser",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "stableBorrowRate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "scaledVariableDebt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "principalStableDebt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stableBorrowLastUpdateTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "aTokenincentivesUserIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vTokenincentivesUserIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sTokenincentivesUserIndex",
              "type": "uint256"
            }
          ],
          "internalType": "struct IUiPoolDataProvider.UserReserveData[]",
          "name": "",
          "type": "tuple[]"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "userUnclaimedRewards",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "emissionEndTimestamp",
              "type": "uint256"
            }
          ],
          "internalType": "struct IUiPoolDataProvider.IncentivesControllerData",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ILendingPoolAddressesProvider",
          "name": "provider",
          "type": "address"
        }
      ],
      "name": "getReservesList",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ILendingPoolAddressesProvider",
          "name": "provider",
          "type": "address"
        }
      ],
      "name": "getSimpleReservesData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "underlyingAsset",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "symbol",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "decimals",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "baseLTVasCollateral",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reserveLiquidationThreshold",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reserveLiquidationBonus",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reserveFactor",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "usageAsCollateralEnabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "borrowingEnabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "stableBorrowRateEnabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "isActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "isFrozen",
              "type": "bool"
            },
            {
              "internalType": "uint128",
              "name": "liquidityIndex",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "variableBorrowIndex",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "liquidityRate",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "variableBorrowRate",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "stableBorrowRate",
              "type": "uint128"
            },
            {
              "internalType": "uint40",
              "name": "lastUpdateTimestamp",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "aTokenAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "stableDebtTokenAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "variableDebtTokenAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "interestRateStrategyAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "availableLiquidity",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "totalPrincipalStableDebt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "averageStableRate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stableDebtLastUpdateTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "totalScaledVariableDebt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "priceInEth",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "variableRateSlope1",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "variableRateSlope2",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stableRateSlope1",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stableRateSlope2",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "aEmissionPerSecond",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vEmissionPerSecond",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sEmissionPerSecond",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "aIncentivesLastUpdateTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vIncentivesLastUpdateTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sIncentivesLastUpdateTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "aTokenIncentivesIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vTokenIncentivesIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sTokenIncentivesIndex",
              "type": "uint256"
            }
          ],
          "internalType": "struct IUiPoolDataProvider.AggregatedReserveData[]",
          "name": "",
          "type": "tuple[]"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ILendingPoolAddressesProvider",
          "name": "provider",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "getUserReservesData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "underlyingAsset",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "scaledATokenBalance",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "usageAsCollateralEnabledOnUser",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "stableBorrowRate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "scaledVariableDebt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "principalStableDebt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "stableBorrowLastUpdateTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "aTokenincentivesUserIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vTokenincentivesUserIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sTokenincentivesUserIndex",
              "type": "uint256"
            }
          ],
          "internalType": "struct IUiPoolDataProvider.UserReserveData[]",
          "name": "",
          "type": "tuple[]"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "incentivesController",
      "outputs": [
        {
          "internalType": "contract IAaveIncentivesController",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oracle",
      "outputs": [
        {
          "internalType": "contract IPriceOracleGetter",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60c06040523480156200001157600080fd5b50604051620038d7380380620038d7833981016040819052620000349162000053565b6001600160601b0319606092831b8116608052911b1660a052620000aa565b6000806040838503121562000066578182fd5b8251620000738162000091565b6020840151909250620000868162000091565b809150509250929050565b6001600160a01b0381168114620000a757600080fd5b50565b60805160601c60a05160601c61377c6200015b600039806104035280610a7c5280611596528061198052806126bd5250806107545280610796528061084952806108fc52806109aa52806109d15280610db95280610dfa5280610eb75280610f5b52806113cf528061140b5280611cd15280611d135280611dc65280611e795280611f295280611f50528061200f52806120cf528061254f528061259a52806126245280612783525061377c6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80637dc0d1d01161005b5780637dc0d1d0146100ee57806387e40db714610103578063af1df25514610126578063b8c0a5b11461012e5761007d565b80634331f2a41461008257806351974cc0146100ad578063586c1442146100ce575b600080fd5b610095610090366004612ee6565b610136565b6040516100a49392919061366a565b60405180910390f35b6100c06100bb366004612f02565b610b25565b6040516100a492919061368f565b6100e16100dc366004612ee6565b6114a1565b6040516100a491906135d5565b6100f6611594565b6040516100a491906135a7565b610116610111366004612f02565b6115b8565b6040516100a49493929190613622565b6100f6612781565b6100f66127a5565b60606000806000846001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561017657600080fd5b505afa15801561018a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ae9190612e1f565b90506060816001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156101eb57600080fd5b505afa1580156101ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102279190810190612e3b565b90506060815167ffffffffffffffff8111801561024357600080fd5b5060405190808252806020026020018201604052801561027d57816020015b61026a612ae0565b8152602001906001900390816102625790505b50905060005b825181101561099d57610294612ae0565b8282815181106102a057fe5b602002602001015190508382815181106102b657fe5b60209081029190910101516001600160a01b031681526102d4612c7e565b81516040516335ea6a7560e01b81526001600160a01b038816916335ea6a759161030191906004016135a7565b6101806040518083038186803b15801561031a57600080fd5b505afa15801561032e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103529190612fc6565b60208101516001600160801b039081166101a085015260408083015182166101c0860152606083015182166101e08601526080830151821661020086015260a083015190911661022085015260c082015164ffffffffff1661024085015260e08201516001600160a01b03908116610260860152610100830151811661028086015261012083015181166102a086015261014083015181166102c08601528451915163b3596f0760e01b81529293507f0000000000000000000000000000000000000000000000000000000000000000169163b3596f0791610436916004016135a7565b60206040518083038186803b15801561044e57600080fd5b505afa158015610462573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610486919061313a565b61038083015281516102608301516040516370a0823160e01b81526001600160a01b03909216916370a08231916104bf916004016135a7565b60206040518083038186803b1580156104d757600080fd5b505afa1580156104eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050f919061313a565b826102e00181815250508161028001516001600160a01b031663797743386040518163ffffffff1660e01b815260040160806040518083038186803b15801561055757600080fd5b505afa15801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f919061317f565b64ffffffffff16610340860152610320850152506103008301526102a08201516040805163b1bf962d60e01b815290516001600160a01b039092169163b1bf962d91600480820192602092909190829003018186803b1580156105f157600080fd5b505afa158015610605573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610629919061313a565b8261036001818152505081600001516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561067057600080fd5b505afa158015610684573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106ac9190810190612f3a565b60408084019190915280516020808201909252600081529083015280516106d2906127bd565b60e0870152606086015260c085015260a0840152608083015280516106f6906127e8565b1515610140860152151561012085015215156101808401521515610160830152608082015115156101008301526102c082015161073290612824565b6104008601526103e08501526103c08401526103a08301526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161561099357610260820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b7916107ca91906004016135a7565b60606040518083038186803b1580156107e257600080fd5b505afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190613152565b6104808501526104208401526104e0830152610280820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b79161087d91906004016135a7565b60606040518083038186803b15801561089557600080fd5b505afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd9190613152565b6104c08501526104608401526105208301526102a0820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b79161093091906004016135a7565b60606040518083038186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109809190613152565b6104a08501526104408401526105008301525b5050600101610283565b5060006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001615610a63577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663919cd40f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2857600080fd5b505afa158015610a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a60919061313a565b90505b60405163b3596f0760e01b815282906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b3596f0790610ac5907310f7fc1f91ba351f9c629c5947ad69bd03c05b96906004016135a7565b60206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b15919061313a565b9099909850909650945050505050565b6060600080846001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6357600080fd5b505afa158015610b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9b9190612e1f565b90506060816001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b158015610bd857600080fd5b505afa158015610bec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c149190810190612e3b565b9050610c1e612ce9565b604051634417a58360e01b81526001600160a01b03841690634417a58390610c4a9089906004016135a7565b60606040518083038186803b158015610c6257600080fd5b505afa158015610c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9a91906130c1565b905060606001600160a01b038716610cb3576000610cb6565b82515b67ffffffffffffffff81118015610ccc57600080fd5b50604051908082528060200260200182016040528015610d0657816020015b610cf3612d09565b815260200190600190039081610ceb5790505b50905060005b83518110156113c257610d1d612c7e565b856001600160a01b03166335ea6a75868481518110610d3857fe5b60200260200101516040518263ffffffff1660e01b8152600401610d5c91906135a7565b6101806040518083038186803b158015610d7557600080fd5b505afa158015610d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dad9190612fc6565b90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161561101a5760e0810151604051630cdcfb9360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633373ee4c91610e2f918d916004016135bb565b60206040518083038186803b158015610e4757600080fd5b505afa158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f919061313a565b838381518110610e8b57fe5b602090810291909101015160e00152610120810151604051630cdcfb9360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633373ee4c91610eec918d916004016135bb565b60206040518083038186803b158015610f0457600080fd5b505afa158015610f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3c919061313a565b838381518110610f4857fe5b60200260200101516101000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633373ee4c8a8361010001516040518363ffffffff1660e01b8152600401610fac9291906135bb565b60206040518083038186803b158015610fc457600080fd5b505afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc919061313a565b83838151811061100857fe5b60200260200101516101200181815250505b84828151811061102657fe5b602002602001015183838151811061103a57fe5b60209081029190910101516001600160a01b03918216905260e0820151604051630ed1279f60e11b8152911690631da24f3e9061107b908c906004016135a7565b60206040518083038186803b15801561109357600080fd5b505afa1580156110a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cb919061313a565b8383815181106110d757fe5b60209081029190910181015101526110ef84836129fd565b8383815181106110fb57fe5b60209081029190910101519015156040909101526111198483612a82565b156113b9578061012001516001600160a01b0316631da24f3e8a6040518263ffffffff1660e01b815260040161114f91906135a7565b60206040518083038186803b15801561116757600080fd5b505afa15801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f919061313a565b8383815181106111ab57fe5b602002602001015160800181815250508061010001516001600160a01b031663c634dfaa8a6040518263ffffffff1660e01b81526004016111ec91906135a7565b60206040518083038186803b15801561120457600080fd5b505afa158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c919061313a565b83838151811061124857fe5b602002602001015160a001818152505082828151811061126457fe5b602002602001015160a001516000146113b9578061010001516001600160a01b031663e78c9b3b8a6040518263ffffffff1660e01b81526004016112a891906135a7565b60206040518083038186803b1580156112c057600080fd5b505afa1580156112d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f8919061313a565b83838151811061130457fe5b602002602001015160600181815250508061010001516001600160a01b03166379ce6b8c8a6040518263ffffffff1660e01b815260040161134591906135a7565b60206040518083038186803b15801561135d57600080fd5b505afa158015611371573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139591906131bf565b64ffffffffff168383815181106113a857fe5b602002602001015160c00181815250505b50600101610d0c565b5060006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161561149357604051630cc7d40f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063198fa81e90611440908b906004016135a7565b60206040518083038186803b15801561145857600080fd5b505afa15801561146c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611490919061313a565b90505b909890975095505050505050565b60606000826001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114de57600080fd5b505afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115169190612e1f565b9050806001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561155157600080fd5b505afa158015611565573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261158d9190810190612e3b565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60608060006115c5612d67565b6000866001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561160057600080fd5b505afa158015611614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116389190612e1f565b90506060816001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561167557600080fd5b505afa158015611689573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116b19190810190612e3b565b90506116bb612ce9565b604051634417a58360e01b81526001600160a01b03841690634417a583906116e7908b906004016135a7565b60606040518083038186803b1580156116ff57600080fd5b505afa158015611713573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173791906130c1565b90506060825167ffffffffffffffff8111801561175357600080fd5b5060405190808252806020026020018201604052801561178d57816020015b61177a612ae0565b8152602001906001900390816117725790505b50905060606001600160a01b038a166117a75760006117aa565b83515b67ffffffffffffffff811180156117c057600080fd5b506040519080825280602002602001820160405280156117fa57816020015b6117e7612d09565b8152602001906001900390816117df5790505b50905060005b845181101561253c57611811612ae0565b83828151811061181d57fe5b6020026020010151905085828151811061183357fe5b60209081029190910101516001600160a01b03168152611851612c7e565b81516040516335ea6a7560e01b81526001600160a01b038a16916335ea6a759161187e91906004016135a7565b6101806040518083038186803b15801561189757600080fd5b505afa1580156118ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cf9190612fc6565b60208101516001600160801b039081166101a085015260408083015182166101c0860152606083015182166101e08601526080830151821661020086015260a083015190911661022085015260c082015164ffffffffff1661024085015260e08201516001600160a01b03908116610260860152610100830151811661028086015261012083015181166102a086015261014083015181166102c08601528451915163b3596f0760e01b81529293507f0000000000000000000000000000000000000000000000000000000000000000169163b3596f07916119b3916004016135a7565b60206040518083038186803b1580156119cb57600080fd5b505afa1580156119df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a03919061313a565b61038083015281516102608301516040516370a0823160e01b81526001600160a01b03909216916370a0823191611a3c916004016135a7565b60206040518083038186803b158015611a5457600080fd5b505afa158015611a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8c919061313a565b826102e00181815250508161028001516001600160a01b031663797743386040518163ffffffff1660e01b815260040160806040518083038186803b158015611ad457600080fd5b505afa158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c919061317f565b64ffffffffff16610340860152610320850152506103008301526102a08201516040805163b1bf962d60e01b815290516001600160a01b039092169163b1bf962d91600480820192602092909190829003018186803b158015611b6e57600080fd5b505afa158015611b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba6919061313a565b8261036001818152505081600001516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611bed57600080fd5b505afa158015611c01573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c299190810190612f3a565b6040808401919091528051602080820190925260008152908301528051611c4f906127bd565b60e0870152606086015260c085015260a084015260808301528051611c73906127e8565b1515610140860152151561012085015215156101808401521515610160830152608082015115156101008301526102c0820151611caf90612824565b6104008601526103e08501526103c08401526103a08301526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001615611f1057610260820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b791611d4791906004016135a7565b60606040518083038186803b158015611d5f57600080fd5b505afa158015611d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d979190613152565b6104808501526104208401526104e0830152610280820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b791611dfa91906004016135a7565b60606040518083038186803b158015611e1257600080fd5b505afa158015611e26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4a9190613152565b6104c08501526104608401526105208301526102a0820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b791611ead91906004016135a7565b60606040518083038186803b158015611ec557600080fd5b505afa158015611ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efd9190613152565b6104a08501526104408401526105008301525b6001600160a01b038d1615612532576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161561218e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633373ee4c8e8461026001516040518363ffffffff1660e01b8152600401611fa19291906135bb565b60206040518083038186803b158015611fb957600080fd5b505afa158015611fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff1919061313a565b848481518110611ffd57fe5b602002602001015160e00181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633373ee4c8e846102a001516040518363ffffffff1660e01b81526004016120609291906135bb565b60206040518083038186803b15801561207857600080fd5b505afa15801561208c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b0919061313a565b8484815181106120bc57fe5b60200260200101516101000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633373ee4c8e8461028001516040518363ffffffff1660e01b81526004016121209291906135bb565b60206040518083038186803b15801561213857600080fd5b505afa15801561214c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612170919061313a565b84848151811061217c57fe5b60200260200101516101200181815250505b816000015184848151811061219f57fe5b6020026020010151600001906001600160a01b031690816001600160a01b0316815250508161026001516001600160a01b0316631da24f3e8e6040518263ffffffff1660e01b81526004016121f491906135a7565b60206040518083038186803b15801561220c57600080fd5b505afa158015612220573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612244919061313a565b84848151811061225057fe5b602090810291909101810151015261226886846129fd565b84848151811061227457fe5b60209081029190910101519015156040909101526122928684612a82565b1561253257816102a001516001600160a01b0316631da24f3e8e6040518263ffffffff1660e01b81526004016122c891906135a7565b60206040518083038186803b1580156122e057600080fd5b505afa1580156122f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612318919061313a565b84848151811061232457fe5b602002602001015160800181815250508161028001516001600160a01b031663c634dfaa8e6040518263ffffffff1660e01b815260040161236591906135a7565b60206040518083038186803b15801561237d57600080fd5b505afa158015612391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b5919061313a565b8484815181106123c157fe5b602002602001015160a00181815250508383815181106123dd57fe5b602002602001015160a00151600014612532578161028001516001600160a01b031663e78c9b3b8e6040518263ffffffff1660e01b815260040161242191906135a7565b60206040518083038186803b15801561243957600080fd5b505afa15801561244d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612471919061313a565b84848151811061247d57fe5b602002602001015160600181815250508161028001516001600160a01b03166379ce6b8c8e6040518263ffffffff1660e01b81526004016124be91906135a7565b60206040518083038186803b1580156124d657600080fd5b505afa1580156124ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250e91906131bf565b64ffffffffff1684848151811061252157fe5b602002602001015160c00181815250505b5050600101611800565b50612545612d67565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016156126b9576001600160a01b038b161561262257604051630cc7d40f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063198fa81e906125cf908e906004016135a7565b60206040518083038186803b1580156125e757600080fd5b505afa1580156125fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261f919061313a565b81525b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663919cd40f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561267b57600080fd5b505afa15801561268f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b3919061313a565b60208201525b82827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b3596f077310f7fc1f91ba351f9c629c5947ad69bd03c05b966040518263ffffffff1660e01b815260040161271b91906135a7565b60206040518083038186803b15801561273357600080fd5b505afa158015612747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276b919061313a565b919e909d50909b50909950975050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7310f7fc1f91ba351f9c629c5947ad69bd03c05b9681565b5161ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b51670100000000000000811615159167020000000000000082161515916704000000000000008116151591670800000000000000909116151590565b600080600080846001600160a01b0316637b832f586040518163ffffffff1660e01b815260040160206040518083038186803b15801561286357600080fd5b505afa158015612877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289b919061313a565b856001600160a01b03166365614f816040518163ffffffff1660e01b815260040160206040518083038186803b1580156128d457600080fd5b505afa1580156128e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290c919061313a565b866001600160a01b0316630bdf953f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561294557600080fd5b505afa158015612959573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297d919061313a565b876001600160a01b031663ccab01a36040518163ffffffff1660e01b815260040160206040518083038186803b1580156129b657600080fd5b505afa1580156129ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ee919061313a565b93509350935093509193509193565b6000610100821060405180604001604052806002815260200161373760f01b81525090612a465760405162461bcd60e51b8152600401612a3d91906136b1565b60405180910390fd5b5060006080830490506080830692508260020260010184600001518260028110612a6c57fe5b60200201516001911c1615159150505b92915050565b6000610100821060405180604001604052806002815260200161373760f01b81525090612ac25760405162461bcd60e51b8152600401612a3d91906136b1565b508251607f83169260809004906002808502919083908110612a6c57fe5b60405180610540016040528060006001600160a01b031681526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160001515815260200160001515815260200160001515815260200160001515815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b03168152602001600064ffffffffff16815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806101800160405280612c92612d81565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820181905261014082018190526101609091015290565b6040518060400160405280612cfc612d94565b8152602001600081525090565b60405180610140016040528060006001600160a01b0316815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6040518060200160405280600081525090565b60405180604001604052806002906020820280368337509192915050565b8051612a7c8161371b565b600060208284031215612dce578081fd5b612dd860206136c4565b9151825250919050565b80516001600160801b0381168114612a7c57600080fd5b805164ffffffffff81168114612a7c57600080fd5b805160ff81168114612a7c57600080fd5b600060208284031215612e30578081fd5b815161158d8161371b565b60006020808385031215612e4d578182fd5b825167ffffffffffffffff80821115612e64578384fd5b818501915085601f830112612e77578384fd5b815181811115612e85578485fd5b8381029150612e958483016136c4565b8181528481019084860184860187018a1015612eaf578788fd5b8795505b83861015612ed957612ec58a82612db2565b835260019590950194918601918601612eb3565b5098975050505050505050565b600060208284031215612ef7578081fd5b813561158d8161371b565b60008060408385031215612f14578081fd5b8235612f1f8161371b565b91506020830135612f2f8161371b565b809150509250929050565b600060208284031215612f4b578081fd5b815167ffffffffffffffff80821115612f62578283fd5b818401915084601f830112612f75578283fd5b815181811115612f83578384fd5b612f96601f8201601f19166020016136c4565b9150808252856020828501011115612fac578384fd5b612fbd8160208401602086016136eb565b50949350505050565b6000610180808385031215612fd9578182fd5b612fe2816136c4565b9050612fee8484612dbd565b8152612ffd8460208501612de2565b602082015261300f8460408501612de2565b60408201526130218460608501612de2565b60608201526130338460808501612de2565b60808201526130458460a08501612de2565b60a08201526130578460c08501612df9565b60c08201526130698460e08501612db2565b60e082015261010061307d85828601612db2565b9082015261012061309085858301612db2565b908201526101406130a385858301612db2565b908201526101606130b685858301612e0e565b908201529392505050565b6000606082840312156130d2578081fd5b6130dc60406136c4565b83601f8401126130ea578182fd5b6130f460406136c4565b80846040860187811115613106578586fd5b855b6002811015613127578251855260209485019490920191600101613108565b5091845250516020830152509392505050565b60006020828403121561314b578081fd5b5051919050565b600080600060608486031215613166578081fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215613194578182fd5b84519350602085015192506040850151915060608501516131b481613733565b939692955090935050565b6000602082840312156131d0578081fd5b815161158d81613733565b6001600160a01b03169052565b6000815180845260208085018081965082840281019150828601855b858110156134a657828403895281516105406132218683516131db565b86820151818888015261323682880182613563565b915050604080830151878303828901526132508382613563565b606085810151908a0152608080860151908a015260a080860151908a015260c080860151908a015260e080860151908a0152610100808601519194509250905061329c8289018261355d565b5050610120808301516132b18289018261355d565b5050610140808301516132c68289018261355d565b5050610160808301516132db8289018261355d565b5050610180808301516132f08289018261355d565b50506101a0808301516133058289018261358f565b50506101c08083015161331a8289018261358f565b50506101e08083015161332f8289018261358f565b5050610200808301516133448289018261358f565b5050610220808301516133598289018261358f565b50506102408083015161336e8289018261359c565b505061026080830151613383828901826131db565b505061028080830151613398828901826131db565b50506102a0808301516133ad828901826131db565b50506102c0808301516133c2828901826131db565b50506102e08281015190870152610300808301519087015261032080830151908701526103408083015190870152610360808301519087015261038080830151908701526103a080830151908701526103c080830151908701526103e08083015190870152610400808301519087015261042080830151908701526104408083015190870152610460808301519087015261048080830151908701526104a080830151908701526104c080830151908701526104e0808301519087015261050080830151908701526105209182015191909501529784019790840190600101613204565b5091979650505050505050565b6000815180845260208085019450808401835b838110156135525781516134db8882516131db565b83810151848901526040808201516134f5828b018261355d565b5050606081810151908901526080808201519089015260a0808201519089015260c0808201519089015260e080820151908901526101008082015190890152610120908101519088015261014090960195908201906001016134c6565b509495945050505050565b15159052565b6000815180845261357b8160208601602086016136eb565b601f01601f19169290920160200192915050565b6001600160801b03169052565b64ffffffffff169052565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156136165783516001600160a01b0316835292840192918401916001016135f1565b50909695505050505050565b600060a0825261363560a08301876131e8565b828103602084015261364781876134b3565b915050836040830152825160608301526020830151608083015295945050505050565b60006060825261367d60608301866131e8565b60208301949094525060400152919050565b6000604082526136a260408301856134b3565b90508260208301529392505050565b60006020825261158d6020830184613563565b60405181810167ffffffffffffffff811182821017156136e357600080fd5b604052919050565b60005b838110156137065781810151838201526020016136ee565b83811115613715576000848401525b50505050565b6001600160a01b038116811461373057600080fd5b50565b64ffffffffff8116811461373057600080fdfea2646970667358221220cdcf1e3d4e641e2cd5ca3b4fae25820a1bcb45b889db89fc3d3af589306457d364736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80637dc0d1d01161005b5780637dc0d1d0146100ee57806387e40db714610103578063af1df25514610126578063b8c0a5b11461012e5761007d565b80634331f2a41461008257806351974cc0146100ad578063586c1442146100ce575b600080fd5b610095610090366004612ee6565b610136565b6040516100a49392919061366a565b60405180910390f35b6100c06100bb366004612f02565b610b25565b6040516100a492919061368f565b6100e16100dc366004612ee6565b6114a1565b6040516100a491906135d5565b6100f6611594565b6040516100a491906135a7565b610116610111366004612f02565b6115b8565b6040516100a49493929190613622565b6100f6612781565b6100f66127a5565b60606000806000846001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561017657600080fd5b505afa15801561018a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ae9190612e1f565b90506060816001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156101eb57600080fd5b505afa1580156101ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102279190810190612e3b565b90506060815167ffffffffffffffff8111801561024357600080fd5b5060405190808252806020026020018201604052801561027d57816020015b61026a612ae0565b8152602001906001900390816102625790505b50905060005b825181101561099d57610294612ae0565b8282815181106102a057fe5b602002602001015190508382815181106102b657fe5b60209081029190910101516001600160a01b031681526102d4612c7e565b81516040516335ea6a7560e01b81526001600160a01b038816916335ea6a759161030191906004016135a7565b6101806040518083038186803b15801561031a57600080fd5b505afa15801561032e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103529190612fc6565b60208101516001600160801b039081166101a085015260408083015182166101c0860152606083015182166101e08601526080830151821661020086015260a083015190911661022085015260c082015164ffffffffff1661024085015260e08201516001600160a01b03908116610260860152610100830151811661028086015261012083015181166102a086015261014083015181166102c08601528451915163b3596f0760e01b81529293507f0000000000000000000000000000000000000000000000000000000000000000169163b3596f0791610436916004016135a7565b60206040518083038186803b15801561044e57600080fd5b505afa158015610462573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610486919061313a565b61038083015281516102608301516040516370a0823160e01b81526001600160a01b03909216916370a08231916104bf916004016135a7565b60206040518083038186803b1580156104d757600080fd5b505afa1580156104eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050f919061313a565b826102e00181815250508161028001516001600160a01b031663797743386040518163ffffffff1660e01b815260040160806040518083038186803b15801561055757600080fd5b505afa15801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f919061317f565b64ffffffffff16610340860152610320850152506103008301526102a08201516040805163b1bf962d60e01b815290516001600160a01b039092169163b1bf962d91600480820192602092909190829003018186803b1580156105f157600080fd5b505afa158015610605573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610629919061313a565b8261036001818152505081600001516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561067057600080fd5b505afa158015610684573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106ac9190810190612f3a565b60408084019190915280516020808201909252600081529083015280516106d2906127bd565b60e0870152606086015260c085015260a0840152608083015280516106f6906127e8565b1515610140860152151561012085015215156101808401521515610160830152608082015115156101008301526102c082015161073290612824565b6104008601526103e08501526103c08401526103a08301526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161561099357610260820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b7916107ca91906004016135a7565b60606040518083038186803b1580156107e257600080fd5b505afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190613152565b6104808501526104208401526104e0830152610280820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b79161087d91906004016135a7565b60606040518083038186803b15801561089557600080fd5b505afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd9190613152565b6104c08501526104608401526105208301526102a0820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b79161093091906004016135a7565b60606040518083038186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109809190613152565b6104a08501526104408401526105008301525b5050600101610283565b5060006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001615610a63577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663919cd40f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2857600080fd5b505afa158015610a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a60919061313a565b90505b60405163b3596f0760e01b815282906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b3596f0790610ac5907310f7fc1f91ba351f9c629c5947ad69bd03c05b96906004016135a7565b60206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b15919061313a565b9099909850909650945050505050565b6060600080846001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6357600080fd5b505afa158015610b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9b9190612e1f565b90506060816001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b158015610bd857600080fd5b505afa158015610bec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c149190810190612e3b565b9050610c1e612ce9565b604051634417a58360e01b81526001600160a01b03841690634417a58390610c4a9089906004016135a7565b60606040518083038186803b158015610c6257600080fd5b505afa158015610c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9a91906130c1565b905060606001600160a01b038716610cb3576000610cb6565b82515b67ffffffffffffffff81118015610ccc57600080fd5b50604051908082528060200260200182016040528015610d0657816020015b610cf3612d09565b815260200190600190039081610ceb5790505b50905060005b83518110156113c257610d1d612c7e565b856001600160a01b03166335ea6a75868481518110610d3857fe5b60200260200101516040518263ffffffff1660e01b8152600401610d5c91906135a7565b6101806040518083038186803b158015610d7557600080fd5b505afa158015610d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dad9190612fc6565b90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161561101a5760e0810151604051630cdcfb9360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633373ee4c91610e2f918d916004016135bb565b60206040518083038186803b158015610e4757600080fd5b505afa158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f919061313a565b838381518110610e8b57fe5b602090810291909101015160e00152610120810151604051630cdcfb9360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633373ee4c91610eec918d916004016135bb565b60206040518083038186803b158015610f0457600080fd5b505afa158015610f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3c919061313a565b838381518110610f4857fe5b60200260200101516101000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633373ee4c8a8361010001516040518363ffffffff1660e01b8152600401610fac9291906135bb565b60206040518083038186803b158015610fc457600080fd5b505afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc919061313a565b83838151811061100857fe5b60200260200101516101200181815250505b84828151811061102657fe5b602002602001015183838151811061103a57fe5b60209081029190910101516001600160a01b03918216905260e0820151604051630ed1279f60e11b8152911690631da24f3e9061107b908c906004016135a7565b60206040518083038186803b15801561109357600080fd5b505afa1580156110a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cb919061313a565b8383815181106110d757fe5b60209081029190910181015101526110ef84836129fd565b8383815181106110fb57fe5b60209081029190910101519015156040909101526111198483612a82565b156113b9578061012001516001600160a01b0316631da24f3e8a6040518263ffffffff1660e01b815260040161114f91906135a7565b60206040518083038186803b15801561116757600080fd5b505afa15801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f919061313a565b8383815181106111ab57fe5b602002602001015160800181815250508061010001516001600160a01b031663c634dfaa8a6040518263ffffffff1660e01b81526004016111ec91906135a7565b60206040518083038186803b15801561120457600080fd5b505afa158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c919061313a565b83838151811061124857fe5b602002602001015160a001818152505082828151811061126457fe5b602002602001015160a001516000146113b9578061010001516001600160a01b031663e78c9b3b8a6040518263ffffffff1660e01b81526004016112a891906135a7565b60206040518083038186803b1580156112c057600080fd5b505afa1580156112d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f8919061313a565b83838151811061130457fe5b602002602001015160600181815250508061010001516001600160a01b03166379ce6b8c8a6040518263ffffffff1660e01b815260040161134591906135a7565b60206040518083038186803b15801561135d57600080fd5b505afa158015611371573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139591906131bf565b64ffffffffff168383815181106113a857fe5b602002602001015160c00181815250505b50600101610d0c565b5060006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161561149357604051630cc7d40f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063198fa81e90611440908b906004016135a7565b60206040518083038186803b15801561145857600080fd5b505afa15801561146c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611490919061313a565b90505b909890975095505050505050565b60606000826001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114de57600080fd5b505afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115169190612e1f565b9050806001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561155157600080fd5b505afa158015611565573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261158d9190810190612e3b565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60608060006115c5612d67565b6000866001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561160057600080fd5b505afa158015611614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116389190612e1f565b90506060816001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561167557600080fd5b505afa158015611689573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116b19190810190612e3b565b90506116bb612ce9565b604051634417a58360e01b81526001600160a01b03841690634417a583906116e7908b906004016135a7565b60606040518083038186803b1580156116ff57600080fd5b505afa158015611713573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173791906130c1565b90506060825167ffffffffffffffff8111801561175357600080fd5b5060405190808252806020026020018201604052801561178d57816020015b61177a612ae0565b8152602001906001900390816117725790505b50905060606001600160a01b038a166117a75760006117aa565b83515b67ffffffffffffffff811180156117c057600080fd5b506040519080825280602002602001820160405280156117fa57816020015b6117e7612d09565b8152602001906001900390816117df5790505b50905060005b845181101561253c57611811612ae0565b83828151811061181d57fe5b6020026020010151905085828151811061183357fe5b60209081029190910101516001600160a01b03168152611851612c7e565b81516040516335ea6a7560e01b81526001600160a01b038a16916335ea6a759161187e91906004016135a7565b6101806040518083038186803b15801561189757600080fd5b505afa1580156118ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cf9190612fc6565b60208101516001600160801b039081166101a085015260408083015182166101c0860152606083015182166101e08601526080830151821661020086015260a083015190911661022085015260c082015164ffffffffff1661024085015260e08201516001600160a01b03908116610260860152610100830151811661028086015261012083015181166102a086015261014083015181166102c08601528451915163b3596f0760e01b81529293507f0000000000000000000000000000000000000000000000000000000000000000169163b3596f07916119b3916004016135a7565b60206040518083038186803b1580156119cb57600080fd5b505afa1580156119df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a03919061313a565b61038083015281516102608301516040516370a0823160e01b81526001600160a01b03909216916370a0823191611a3c916004016135a7565b60206040518083038186803b158015611a5457600080fd5b505afa158015611a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8c919061313a565b826102e00181815250508161028001516001600160a01b031663797743386040518163ffffffff1660e01b815260040160806040518083038186803b158015611ad457600080fd5b505afa158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c919061317f565b64ffffffffff16610340860152610320850152506103008301526102a08201516040805163b1bf962d60e01b815290516001600160a01b039092169163b1bf962d91600480820192602092909190829003018186803b158015611b6e57600080fd5b505afa158015611b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba6919061313a565b8261036001818152505081600001516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611bed57600080fd5b505afa158015611c01573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c299190810190612f3a565b6040808401919091528051602080820190925260008152908301528051611c4f906127bd565b60e0870152606086015260c085015260a084015260808301528051611c73906127e8565b1515610140860152151561012085015215156101808401521515610160830152608082015115156101008301526102c0820151611caf90612824565b6104008601526103e08501526103c08401526103a08301526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001615611f1057610260820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b791611d4791906004016135a7565b60606040518083038186803b158015611d5f57600080fd5b505afa158015611d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d979190613152565b6104808501526104208401526104e0830152610280820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b791611dfa91906004016135a7565b60606040518083038186803b158015611e1257600080fd5b505afa158015611e26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4a9190613152565b6104c08501526104608401526105208301526102a0820151604051631652e7b760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631652e7b791611ead91906004016135a7565b60606040518083038186803b158015611ec557600080fd5b505afa158015611ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efd9190613152565b6104a08501526104408401526105008301525b6001600160a01b038d1615612532576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161561218e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633373ee4c8e8461026001516040518363ffffffff1660e01b8152600401611fa19291906135bb565b60206040518083038186803b158015611fb957600080fd5b505afa158015611fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff1919061313a565b848481518110611ffd57fe5b602002602001015160e00181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633373ee4c8e846102a001516040518363ffffffff1660e01b81526004016120609291906135bb565b60206040518083038186803b15801561207857600080fd5b505afa15801561208c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b0919061313a565b8484815181106120bc57fe5b60200260200101516101000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633373ee4c8e8461028001516040518363ffffffff1660e01b81526004016121209291906135bb565b60206040518083038186803b15801561213857600080fd5b505afa15801561214c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612170919061313a565b84848151811061217c57fe5b60200260200101516101200181815250505b816000015184848151811061219f57fe5b6020026020010151600001906001600160a01b031690816001600160a01b0316815250508161026001516001600160a01b0316631da24f3e8e6040518263ffffffff1660e01b81526004016121f491906135a7565b60206040518083038186803b15801561220c57600080fd5b505afa158015612220573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612244919061313a565b84848151811061225057fe5b602090810291909101810151015261226886846129fd565b84848151811061227457fe5b60209081029190910101519015156040909101526122928684612a82565b1561253257816102a001516001600160a01b0316631da24f3e8e6040518263ffffffff1660e01b81526004016122c891906135a7565b60206040518083038186803b1580156122e057600080fd5b505afa1580156122f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612318919061313a565b84848151811061232457fe5b602002602001015160800181815250508161028001516001600160a01b031663c634dfaa8e6040518263ffffffff1660e01b815260040161236591906135a7565b60206040518083038186803b15801561237d57600080fd5b505afa158015612391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b5919061313a565b8484815181106123c157fe5b602002602001015160a00181815250508383815181106123dd57fe5b602002602001015160a00151600014612532578161028001516001600160a01b031663e78c9b3b8e6040518263ffffffff1660e01b815260040161242191906135a7565b60206040518083038186803b15801561243957600080fd5b505afa15801561244d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612471919061313a565b84848151811061247d57fe5b602002602001015160600181815250508161028001516001600160a01b03166379ce6b8c8e6040518263ffffffff1660e01b81526004016124be91906135a7565b60206040518083038186803b1580156124d657600080fd5b505afa1580156124ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250e91906131bf565b64ffffffffff1684848151811061252157fe5b602002602001015160c00181815250505b5050600101611800565b50612545612d67565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016156126b9576001600160a01b038b161561262257604051630cc7d40f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063198fa81e906125cf908e906004016135a7565b60206040518083038186803b1580156125e757600080fd5b505afa1580156125fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261f919061313a565b81525b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663919cd40f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561267b57600080fd5b505afa15801561268f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b3919061313a565b60208201525b82827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b3596f077310f7fc1f91ba351f9c629c5947ad69bd03c05b966040518263ffffffff1660e01b815260040161271b91906135a7565b60206040518083038186803b15801561273357600080fd5b505afa158015612747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276b919061313a565b919e909d50909b50909950975050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7310f7fc1f91ba351f9c629c5947ad69bd03c05b9681565b5161ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b51670100000000000000811615159167020000000000000082161515916704000000000000008116151591670800000000000000909116151590565b600080600080846001600160a01b0316637b832f586040518163ffffffff1660e01b815260040160206040518083038186803b15801561286357600080fd5b505afa158015612877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289b919061313a565b856001600160a01b03166365614f816040518163ffffffff1660e01b815260040160206040518083038186803b1580156128d457600080fd5b505afa1580156128e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290c919061313a565b866001600160a01b0316630bdf953f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561294557600080fd5b505afa158015612959573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297d919061313a565b876001600160a01b031663ccab01a36040518163ffffffff1660e01b815260040160206040518083038186803b1580156129b657600080fd5b505afa1580156129ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ee919061313a565b93509350935093509193509193565b6000610100821060405180604001604052806002815260200161373760f01b81525090612a465760405162461bcd60e51b8152600401612a3d91906136b1565b60405180910390fd5b5060006080830490506080830692508260020260010184600001518260028110612a6c57fe5b60200201516001911c1615159150505b92915050565b6000610100821060405180604001604052806002815260200161373760f01b81525090612ac25760405162461bcd60e51b8152600401612a3d91906136b1565b508251607f83169260809004906002808502919083908110612a6c57fe5b60405180610540016040528060006001600160a01b031681526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160001515815260200160001515815260200160001515815260200160001515815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b03168152602001600064ffffffffff16815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806101800160405280612c92612d81565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820181905261014082018190526101609091015290565b6040518060400160405280612cfc612d94565b8152602001600081525090565b60405180610140016040528060006001600160a01b0316815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6040518060200160405280600081525090565b60405180604001604052806002906020820280368337509192915050565b8051612a7c8161371b565b600060208284031215612dce578081fd5b612dd860206136c4565b9151825250919050565b80516001600160801b0381168114612a7c57600080fd5b805164ffffffffff81168114612a7c57600080fd5b805160ff81168114612a7c57600080fd5b600060208284031215612e30578081fd5b815161158d8161371b565b60006020808385031215612e4d578182fd5b825167ffffffffffffffff80821115612e64578384fd5b818501915085601f830112612e77578384fd5b815181811115612e85578485fd5b8381029150612e958483016136c4565b8181528481019084860184860187018a1015612eaf578788fd5b8795505b83861015612ed957612ec58a82612db2565b835260019590950194918601918601612eb3565b5098975050505050505050565b600060208284031215612ef7578081fd5b813561158d8161371b565b60008060408385031215612f14578081fd5b8235612f1f8161371b565b91506020830135612f2f8161371b565b809150509250929050565b600060208284031215612f4b578081fd5b815167ffffffffffffffff80821115612f62578283fd5b818401915084601f830112612f75578283fd5b815181811115612f83578384fd5b612f96601f8201601f19166020016136c4565b9150808252856020828501011115612fac578384fd5b612fbd8160208401602086016136eb565b50949350505050565b6000610180808385031215612fd9578182fd5b612fe2816136c4565b9050612fee8484612dbd565b8152612ffd8460208501612de2565b602082015261300f8460408501612de2565b60408201526130218460608501612de2565b60608201526130338460808501612de2565b60808201526130458460a08501612de2565b60a08201526130578460c08501612df9565b60c08201526130698460e08501612db2565b60e082015261010061307d85828601612db2565b9082015261012061309085858301612db2565b908201526101406130a385858301612db2565b908201526101606130b685858301612e0e565b908201529392505050565b6000606082840312156130d2578081fd5b6130dc60406136c4565b83601f8401126130ea578182fd5b6130f460406136c4565b80846040860187811115613106578586fd5b855b6002811015613127578251855260209485019490920191600101613108565b5091845250516020830152509392505050565b60006020828403121561314b578081fd5b5051919050565b600080600060608486031215613166578081fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215613194578182fd5b84519350602085015192506040850151915060608501516131b481613733565b939692955090935050565b6000602082840312156131d0578081fd5b815161158d81613733565b6001600160a01b03169052565b6000815180845260208085018081965082840281019150828601855b858110156134a657828403895281516105406132218683516131db565b86820151818888015261323682880182613563565b915050604080830151878303828901526132508382613563565b606085810151908a0152608080860151908a015260a080860151908a015260c080860151908a015260e080860151908a0152610100808601519194509250905061329c8289018261355d565b5050610120808301516132b18289018261355d565b5050610140808301516132c68289018261355d565b5050610160808301516132db8289018261355d565b5050610180808301516132f08289018261355d565b50506101a0808301516133058289018261358f565b50506101c08083015161331a8289018261358f565b50506101e08083015161332f8289018261358f565b5050610200808301516133448289018261358f565b5050610220808301516133598289018261358f565b50506102408083015161336e8289018261359c565b505061026080830151613383828901826131db565b505061028080830151613398828901826131db565b50506102a0808301516133ad828901826131db565b50506102c0808301516133c2828901826131db565b50506102e08281015190870152610300808301519087015261032080830151908701526103408083015190870152610360808301519087015261038080830151908701526103a080830151908701526103c080830151908701526103e08083015190870152610400808301519087015261042080830151908701526104408083015190870152610460808301519087015261048080830151908701526104a080830151908701526104c080830151908701526104e0808301519087015261050080830151908701526105209182015191909501529784019790840190600101613204565b5091979650505050505050565b6000815180845260208085019450808401835b838110156135525781516134db8882516131db565b83810151848901526040808201516134f5828b018261355d565b5050606081810151908901526080808201519089015260a0808201519089015260c0808201519089015260e080820151908901526101008082015190890152610120908101519088015261014090960195908201906001016134c6565b509495945050505050565b15159052565b6000815180845261357b8160208601602086016136eb565b601f01601f19169290920160200192915050565b6001600160801b03169052565b64ffffffffff169052565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156136165783516001600160a01b0316835292840192918401916001016135f1565b50909695505050505050565b600060a0825261363560a08301876131e8565b828103602084015261364781876134b3565b915050836040830152825160608301526020830151608083015295945050505050565b60006060825261367d60608301866131e8565b60208301949094525060400152919050565b6000604082526136a260408301856134b3565b90508260208301529392505050565b60006020825261158d6020830184613563565b60405181810167ffffffffffffffff811182821017156136e357600080fd5b604052919050565b60005b838110156137065781810151838201526020016136ee565b83811115613715576000848401525b50505050565b6001600160a01b038116811461373057600080fd5b50565b64ffffffffff8116811461373057600080fdfea2646970667358221220cdcf1e3d4e641e2cd5ca3b4fae25820a1bcb45b889db89fc3d3af589306457d364736f6c634300060c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
