{
  "_format": "hh-sol-artifact-1",
  "contractName": "UiPoolDataProviderV3",
  "sourceName": "contracts/misc/UiPoolDataProviderV3.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IEACAggregatorProxy",
          "name": "_networkBaseTokenPriceInUsdProxyAggregator",
          "type": "address"
        },
        {
          "internalType": "contract IEACAggregatorProxy",
          "name": "_marketReferenceCurrencyPriceInUsdProxyAggregator",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ETH_CURRENCY_UNIT",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MKR_ADDRESS",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_bytes32",
          "type": "bytes32"
        }
      ],
      "name": "bytes32ToString",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IPoolAddressesProvider",
          "name": "provider",
          "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": "priceInMarketReferenceCurrency",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "priceOracle",
              "type": "address"
            },
            {
              "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": "baseStableBorrowRate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "baseVariableBorrowRate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "optimalUsageRatio",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "isPaused",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "isSiloedBorrowing",
              "type": "bool"
            },
            {
              "internalType": "uint128",
              "name": "accruedToTreasury",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "unbacked",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "isolationModeTotalDebt",
              "type": "uint128"
            },
            {
              "internalType": "bool",
              "name": "flashLoanEnabled",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "debtCeiling",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "debtCeilingDecimals",
              "type": "uint256"
            },
            {
              "internalType": "uint8",
              "name": "eModeCategoryId",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "borrowCap",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "supplyCap",
              "type": "uint256"
            },
            {
              "internalType": "uint16",
              "name": "eModeLtv",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "eModeLiquidationThreshold",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "eModeLiquidationBonus",
              "type": "uint16"
            },
            {
              "internalType": "address",
              "name": "eModePriceSource",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "eModeLabel",
              "type": "string"
            },
            {
              "internalType": "bool",
              "name": "borrowableInIsolation",
              "type": "bool"
            }
          ],
          "internalType": "struct IUiPoolDataProviderV3.AggregatedReserveData[]",
          "name": "",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "marketReferenceCurrencyUnit",
              "type": "uint256"
            },
            {
              "internalType": "int256",
              "name": "marketReferenceCurrencyPriceInUsd",
              "type": "int256"
            },
            {
              "internalType": "int256",
              "name": "networkBaseTokenPriceInUsd",
              "type": "int256"
            },
            {
              "internalType": "uint8",
              "name": "networkBaseTokenPriceDecimals",
              "type": "uint8"
            }
          ],
          "internalType": "struct IUiPoolDataProviderV3.BaseCurrencyInfo",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IPoolAddressesProvider",
          "name": "provider",
          "type": "address"
        }
      ],
      "name": "getReservesList",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IPoolAddressesProvider",
          "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": "struct IUiPoolDataProviderV3.UserReserveData[]",
          "name": "",
          "type": "tuple[]"
        },
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "marketReferenceCurrencyPriceInUsdProxyAggregator",
      "outputs": [
        {
          "internalType": "contract IEACAggregatorProxy",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "networkBaseTokenPriceInUsdProxyAggregator",
      "outputs": [
        {
          "internalType": "contract IEACAggregatorProxy",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60c06040523480156200001157600080fd5b5060405162002f2438038062002f24833981016040819052620000349162000069565b6001600160a01b039182166080521660a052620000a1565b80516001600160a01b03811681146200006457600080fd5b919050565b600080604083850312156200007d57600080fd5b62000088836200004c565b915062000098602084016200004c565b90509250929050565b60805160a051612e49620000db6000396000818161017c015261207701526000818160b401528181611e7b0152611f130152612e496000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063825ffd921161005b578063825ffd921461013c5780639201de5514610157578063d22cf68a14610177578063ec489c211461019e57600080fd5b80630496f53a1461008d5780633c1740ed146100af57806351974cc0146100fb578063586c14421461011c575b600080fd5b61009c670de0b6b3a764000081565b6040519081526020015b60405180910390f35b6100d67f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a6565b61010e61010936600461225a565b6101bf565b6040516100a6929190612293565b61012f61012a36600461233f565b6109c4565b6040516100a6919061235c565b6100d6739f8f72aa9304c8b593d555f12ef6589cc3a579a281565b61016a6101653660046123b6565b610ab3565b6040516100a6919061242b565b6100d67f000000000000000000000000000000000000000000000000000000000000000081565b6101b16101ac36600461233f565b610c2b565b6040516100a692919061243e565b60606000808473ffffffffffffffffffffffffffffffffffffffff1663026b1d5f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610233919061280c565b905060008173ffffffffffffffffffffffffffffffffffffffff1663d1946dbc6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610282573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102aa91908101906128d6565b6040517f4417a58300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152919250600091841690634417a58390602401602060405180830381865afa15801561031c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034091906129ca565b6040517feddf1b7900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015291925060009185169063eddf1b7990602401602060405180830381865afa1580156103b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d691906129e6565b9050600073ffffffffffffffffffffffffffffffffffffffff88166103fc5760006103ff565b83515b67ffffffffffffffff81111561041757610417612829565b6040519080825280602002602001820160405280156104a057816020015b61048d6040518060e00160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081525090565b8152602001906001900390816104355790505b50905060005b84518110156109b65760008673ffffffffffffffffffffffffffffffffffffffff166335ea6a758784815181106104df576104df6129ff565b60200260200101516040518263ffffffff1660e01b815260040161051f919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6101e060405180830381865afa15801561053d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105619190612a75565b9050858281518110610575576105756129ff565b602002602001015183838151811061058f5761058f6129ff565b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff91821690526101008201516040517f1da24f3e0000000000000000000000000000000000000000000000000000000081528c83166004820152911690631da24f3e90602401602060405180830381865afa158015610611573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063591906129e6565b838381518110610647576106476129ff565b602090810291909101810151015261065f8583612126565b838381518110610671576106716129ff565b602090810291909101015190151560409091015261068f85836121b3565b156109a3576101408101516040517f1da24f3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c8116600483015290911690631da24f3e90602401602060405180830381865afa158015610707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072b91906129e6565b83838151811061073d5761073d6129ff565b6020908102919091010151608001526101208101516040517fc634dfaa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c811660048301529091169063c634dfaa90602401602060405180830381865afa1580156107bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e391906129e6565b8383815181106107f5576107f56129ff565b602002602001015160a0018181525050828281518110610817576108176129ff565b602002602001015160a001516000146109a3576101208101516040517fe78c9b3b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c811660048301529091169063e78c9b3b90602401602060405180830381865afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c191906129e6565b8383815181106108d3576108d36129ff565b6020908102919091010151606001526101208101516040517f79ce6b8c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152909116906379ce6b8c90602401602060405180830381865afa158015610955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109799190612b98565b64ffffffffff16838381518110610992576109926129ff565b602002602001015160c00181815250505b50806109ae81612be2565b9150506104a6565b509890975095505050505050565b606060008273ffffffffffffffffffffffffffffffffffffffff1663026b1d5f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a37919061280c565b90508073ffffffffffffffffffffffffffffffffffffffff1663d1946dbc6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610a84573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aac91908101906128d6565b9392505050565b606060005b60208160ff16108015610b045750828160ff1660208110610adb57610adb6129ff565b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b15610b1b5780610b1381612c1b565b915050610ab8565b60008160ff1667ffffffffffffffff811115610b3957610b39612829565b6040519080825280601f01601f191660200182016040528015610b63576020820181803683370190505b509050600091505b60208260ff16108015610bb75750838260ff1660208110610b8e57610b8e6129ff565b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b15610aac57838260ff1660208110610bd157610bd16129ff565b1a60f81b818360ff1681518110610bea57610bea6129ff565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535081610c2381612c1b565b925050610b6b565b6060610c5b6040518060800160405280600081526020016000815260200160008152602001600060ff1681525090565b60008373ffffffffffffffffffffffffffffffffffffffff1663fca513a86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccc919061280c565b905060008473ffffffffffffffffffffffffffffffffffffffff1663026b1d5f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3f919061280c565b905060008573ffffffffffffffffffffffffffffffffffffffff1663e860accb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db2919061280c565b905060008273ffffffffffffffffffffffffffffffffffffffff1663d1946dbc6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e01573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e2991908101906128d6565b90506000815167ffffffffffffffff811115610e4757610e47612829565b60405190808252806020026020018201604052801561104357816020015b604080516106c0810182526000808252606060208084018290529383018190528083018290526080830182905260a0830182905260c0830182905260e08301829052610100830182905261012083018290526101408301829052610160830182905261018083018290526101a083018290526101c083018290526101e08301829052610200830182905261022083018290526102408301829052610260830182905261028083018290526102a083018290526102c083018290526102e08301829052610300830182905261032083018290526103408301829052610360830182905261038083018290526103a083018290526103c083018290526103e08301829052610400830182905261042083018290526104408301829052610460830182905261048083018290526104a083018290526104c083018290526104e08301829052610500830182905261052083018290526105408301829052610560830182905261058083018290526105a083018290526105c083018290526105e0830182905261060083018290526106208301829052610640830182905261066083018290526106808301526106a082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610e655790505b50905060005b8251811015611e4a576000828281518110611066576110666129ff565b60200260200101519050838281518110611082576110826129ff565b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff9081168083526040517f35ea6a7500000000000000000000000000000000000000000000000000000000815260048101919091526000918816906335ea6a75906024016101e060405180830381865afa158015611103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111279190612a75565b60208101516fffffffffffffffffffffffffffffffff9081166101a0850152606082015181166101c085015260408083015182166101e08601526080830151821661020086015260a083015190911661022085015260c082015164ffffffffff1661024085015261010082015173ffffffffffffffffffffffffffffffffffffffff908116610260860152610120830151811661028086015261014083015181166102a086015261016083015181166102c0860152845191517fb3596f0700000000000000000000000000000000000000000000000000000000815291811660048301529192509089169063b3596f0790602401602060405180830381865afa158015611238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125c91906129e6565b61038083015281516040517f92bf2be000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152908916906392bf2be090602401602060405180830381865afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f5919061280c565b73ffffffffffffffffffffffffffffffffffffffff9081166103a084015282516102608401516040517f70a0823100000000000000000000000000000000000000000000000000000000815290831660048201529116906370a0823190602401602060405180830381865afa158015611372573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139691906129e6565b826102e001818152505081610280015173ffffffffffffffffffffffffffffffffffffffff1663797743386040518163ffffffff1660e01b8152600401608060405180830381865afa1580156113f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114149190612c3b565b64ffffffffff16610340860152610320850152506103008301526102a0820151604080517fb1bf962d000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169163b1bf962d916004808201926020929091908290030181865afa1580156114a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c591906129e6565b610360830152815173ffffffffffffffffffffffffffffffffffffffff16739f8f72aa9304c8b593d555f12ef6589cc3a579a21415611610576000826000015173ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157391906129e6565b90506000836000015173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ea91906129e6565b90506115f582610ab3565b604085015261160381610ab3565b60208501525061170c9050565b816000015173ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561165f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116879190810190612ce6565b8260400181905250816000015173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa1580156116de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117069190810190612ce6565b60208301525b8051805161ffff604082811c821660e087015260ff603084901c81166060880152602084811c841660c0890152601085901c841660a08901529284166080880181905215156101008801528451671000000000000000811615156104a08901526708000000000000008116151561014089015267040000000000000081161515610120890152670200000000000000811615156101808901526701000000000000001615156101608801526102c087015182517f0b3429a2000000000000000000000000000000000000000000000000000000008152925160a89590951c9091169373ffffffffffffffffffffffffffffffffffffffff90911692630b3429a292600480820193918290030181865afa925050508015611849575060408051601f3d908101601f19168201909252611846918101906129e6565b60015b61185257611859565b6103c08501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff1663f42024096040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156118c5575060408051601f3d908101601f191682019092526118c2918101906129e6565b60015b6118ce576118d5565b6103e08501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff1663d5cd73916040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611941575060408051601f3d908101601f1916820190925261193e918101906129e6565b60015b61194a57611951565b6104008501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff166314e32da46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156119bd575060408051601f3d908101601f191682019092526119ba918101906129e6565b60015b6119c6576119cd565b6104208501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff1663acd786866040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611a39575060408051601f3d908101601f19168201909252611a36918101906129e6565b60015b611a4257611a49565b6104408501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff166334762ca56040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611ab5575060408051601f3d908101601f19168201909252611ab2918101906129e6565b60015b611abe57611ac5565b6104608501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff166354c365c66040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611b31575060408051601f3d908101601f19168201909252611b2e918101906129e6565b60015b611b3a57611b41565b6104808501525b60ff81166105a0850152815160d41c64ffffffffff16846105600181815250508773ffffffffffffffffffffffffffffffffffffffff166369b169e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906129e6565b6105808501528151640fffffffff605082901c81169160741c166105e08601526105c085015283516040517fd7ed3ef400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529089169063d7ed3ef490602401602060405180830381865afa925050508015611c81575060408051601f3d908101601f19168201909252611c7e91810190612d1b565b60015b611cc3573d808015611caf576040519150601f19603f3d011682016040523d82523d6000602084013e611cb4565b606091505b50506001610540850152611ccc565b15156105408501525b815167400000000000000016151515156104c08501526101a08301516fffffffffffffffffffffffffffffffff9081166105008601526101c08401518116610520860152610180840151166104e08501526105a08401516040517f6c6f6ae100000000000000000000000000000000000000000000000000000000815260ff909116600482015260009073ffffffffffffffffffffffffffffffffffffffff8b1690636c6f6ae190602401600060405180830381865afa158015611d94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dbc9190810190612d3d565b805161ffff90811661060088015260208201518116610620880152604082015116610640870152606081015173ffffffffffffffffffffffffffffffffffffffff1661066087015260808101516106808701529050611e25835167200000000000000016151590565b15156106a09095019490945250839250611e429150829050612be2565b915050611049565b50611e796040518060800160405280600081526020016000815260200160008152602001600060ff1681525090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0891906129e6565b8160400181815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa09190612df0565b60ff166060820152604080517f8c89b64f000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff881691638c89b64f9160048083019260209291908290030181865afa92505050801561202f575060408051601f3d908101601f1916820190925261202c918101906129e6565b60015b61210f573d80801561205d576040519150601f19603f3d011682016040523d82523d6000602084013e612062565b606091505b50670de0b6b3a76400008260000181815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210491906129e6565b602083015250612118565b80825260208201525b909890975095505050505050565b60408051808201909152600281527f37340000000000000000000000000000000000000000000000000000000000006020820152600090608083106121a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612198919061242b565b60405180910390fd5b50509051600191821b82011c16151590565b60408051808201909152600281527f3734000000000000000000000000000000000000000000000000000000000000602082015260009060808310612225576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612198919061242b565b50509051600191821b1c16151590565b73ffffffffffffffffffffffffffffffffffffffff8116811461225757600080fd5b50565b6000806040838503121561226d57600080fd5b823561227881612235565b9150602083013561228881612235565b809150509250929050565b6040808252835182820181905260009190606090818501906020808901865b83811015612320578151805173ffffffffffffffffffffffffffffffffffffffff16865283810151848701528781015115158887015286810151878701526080808201519087015260a0808201519087015260c0908101519086015260e090940193908201906001016122b2565b50508295506123338188018960ff169052565b50505050509392505050565b60006020828403121561235157600080fd5b8135610aac81612235565b6020808252825182820181905260009190848201906040850190845b818110156123aa57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101612378565b50909695505050505050565b6000602082840312156123c857600080fd5b5035919050565b60005b838110156123ea5781810151838201526020016123d2565b838111156123f9576000848401525b50505050565b600081518084526124178160208601602086016123cf565b601f01601f19169290920160200192915050565b602081526000610aac60208301846123ff565b600060a080830181845280865180835260c092508286019150828160051b8701016020808a0160005b848110156127ba578984037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff400186528151805173ffffffffffffffffffffffffffffffffffffffff1685526106c08482015181868801526124ca828801826123ff565b915050604080830151878303828901526124e483826123ff565b606085810151908a0152608080860151908a01528c8501518d8a01528b8501518c8a015260e080860151908a0152610100808601511515908a0152610120808601511515908a0152610140808601511515908a0152610160808601511515908a0152610180808601511515908a01526101a0808601516fffffffffffffffffffffffffffffffff908116918b01919091526101c0808701518216908b01526101e0808701518216908b0152610200808701518216908b0152610220808701518216908b01526102408087015164ffffffffff16908b01526102608087015173ffffffffffffffffffffffffffffffffffffffff908116918c0191909152610280808801518216908c01526102a0808801518216908c01526102c0808801518216908c01526102e080880151908c015261030080880151908c015261032080880151908c015261034080880151908c015261036080880151908c015261038080880151908c01526103a0808801518216908c01526103c080880151908c01526103e080880151908c015261040080880151908c015261042080880151908c015261044080880151908c015261046080880151908c015261048080880151908c01526104a0808801511515908c01526104c0808801511515908c01526104e0808801518316908c0152610500808801518316908c015261052080880151909216918b0191909152610540808701511515908b015261056080870151908b015261058080870151908b01526105a08087015160ff16908b01526105c080870151908b01526105e080870151908b01526106008087015161ffff908116918c0191909152610620808801518216908c015261064080880151909116908b015261066080870151909116908a0152610680808601518a8303828c01529194509250905061278c83826123ff565b925050506106a08083015192506127a68188018415159052565b509684019694505090820190600101612467565b50508196506127ef8189018a80518252602081015160208301526040810151604083015260ff60608201511660608301525050565b5050505050509392505050565b805161280781612235565b919050565b60006020828403121561281e57600080fd5b8151610aac81612235565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101e0810167ffffffffffffffff8111828210171561287c5761287c612829565b60405290565b60405160a0810167ffffffffffffffff8111828210171561287c5761287c612829565b604051601f8201601f1916810167ffffffffffffffff811182821017156128ce576128ce612829565b604052919050565b600060208083850312156128e957600080fd5b825167ffffffffffffffff8082111561290157600080fd5b818501915085601f83011261291557600080fd5b81518181111561292757612927612829565b8060051b91506129388483016128a5565b818152918301840191848101908884111561295257600080fd5b938501935b8385101561297c578451925061296c83612235565b8282529385019390850190612957565b98975050505050505050565b60006020828403121561299a57600080fd5b6040516020810181811067ffffffffffffffff821117156129bd576129bd612829565b6040529151825250919050565b6000602082840312156129dc57600080fd5b610aac8383612988565b6000602082840312156129f857600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80516fffffffffffffffffffffffffffffffff8116811461280757600080fd5b805164ffffffffff8116811461280757600080fd5b805161ffff8116811461280757600080fd5b60006101e08284031215612a8857600080fd5b612a90612858565b612a9a8484612988565b8152612aa860208401612a2e565b6020820152612ab960408401612a2e565b6040820152612aca60608401612a2e565b6060820152612adb60808401612a2e565b6080820152612aec60a08401612a2e565b60a0820152612afd60c08401612a4e565b60c0820152612b0e60e08401612a63565b60e0820152610100612b218185016127fc565b90820152610120612b338482016127fc565b90820152610140612b458482016127fc565b90820152610160612b578482016127fc565b90820152610180612b69848201612a2e565b908201526101a0612b7b848201612a2e565b908201526101c0612b8d848201612a2e565b908201529392505050565b600060208284031215612baa57600080fd5b610aac82612a4e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c1457612c14612bb3565b5060010190565b600060ff821660ff811415612c3257612c32612bb3565b60010192915050565b60008060008060808587031215612c5157600080fd5b845193506020850151925060408501519150612c6f60608601612a4e565b905092959194509250565b600082601f830112612c8b57600080fd5b815167ffffffffffffffff811115612ca557612ca5612829565b612cb86020601f19601f840116016128a5565b818152846020838601011115612ccd57600080fd5b612cde8260208301602087016123cf565b949350505050565b600060208284031215612cf857600080fd5b815167ffffffffffffffff811115612d0f57600080fd5b612cde84828501612c7a565b600060208284031215612d2d57600080fd5b81518015158114610aac57600080fd5b600060208284031215612d4f57600080fd5b815167ffffffffffffffff80821115612d6757600080fd5b9083019060a08286031215612d7b57600080fd5b612d83612882565b612d8c83612a63565b8152612d9a60208401612a63565b6020820152612dab60408401612a63565b60408201526060830151612dbe81612235565b6060820152608083015182811115612dd557600080fd5b612de187828601612c7a565b60808301525095945050505050565b600060208284031215612e0257600080fd5b815160ff81168114610aac57600080fdfea264697066735822122064141f2b3a8990922c5319ddf6e5b1729666732cfc5485969196ed880b91ed9664736f6c634300080a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063825ffd921161005b578063825ffd921461013c5780639201de5514610157578063d22cf68a14610177578063ec489c211461019e57600080fd5b80630496f53a1461008d5780633c1740ed146100af57806351974cc0146100fb578063586c14421461011c575b600080fd5b61009c670de0b6b3a764000081565b6040519081526020015b60405180910390f35b6100d67f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a6565b61010e61010936600461225a565b6101bf565b6040516100a6929190612293565b61012f61012a36600461233f565b6109c4565b6040516100a6919061235c565b6100d6739f8f72aa9304c8b593d555f12ef6589cc3a579a281565b61016a6101653660046123b6565b610ab3565b6040516100a6919061242b565b6100d67f000000000000000000000000000000000000000000000000000000000000000081565b6101b16101ac36600461233f565b610c2b565b6040516100a692919061243e565b60606000808473ffffffffffffffffffffffffffffffffffffffff1663026b1d5f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610233919061280c565b905060008173ffffffffffffffffffffffffffffffffffffffff1663d1946dbc6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610282573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102aa91908101906128d6565b6040517f4417a58300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152919250600091841690634417a58390602401602060405180830381865afa15801561031c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034091906129ca565b6040517feddf1b7900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015291925060009185169063eddf1b7990602401602060405180830381865afa1580156103b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d691906129e6565b9050600073ffffffffffffffffffffffffffffffffffffffff88166103fc5760006103ff565b83515b67ffffffffffffffff81111561041757610417612829565b6040519080825280602002602001820160405280156104a057816020015b61048d6040518060e00160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081525090565b8152602001906001900390816104355790505b50905060005b84518110156109b65760008673ffffffffffffffffffffffffffffffffffffffff166335ea6a758784815181106104df576104df6129ff565b60200260200101516040518263ffffffff1660e01b815260040161051f919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6101e060405180830381865afa15801561053d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105619190612a75565b9050858281518110610575576105756129ff565b602002602001015183838151811061058f5761058f6129ff565b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff91821690526101008201516040517f1da24f3e0000000000000000000000000000000000000000000000000000000081528c83166004820152911690631da24f3e90602401602060405180830381865afa158015610611573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063591906129e6565b838381518110610647576106476129ff565b602090810291909101810151015261065f8583612126565b838381518110610671576106716129ff565b602090810291909101015190151560409091015261068f85836121b3565b156109a3576101408101516040517f1da24f3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c8116600483015290911690631da24f3e90602401602060405180830381865afa158015610707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072b91906129e6565b83838151811061073d5761073d6129ff565b6020908102919091010151608001526101208101516040517fc634dfaa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c811660048301529091169063c634dfaa90602401602060405180830381865afa1580156107bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e391906129e6565b8383815181106107f5576107f56129ff565b602002602001015160a0018181525050828281518110610817576108176129ff565b602002602001015160a001516000146109a3576101208101516040517fe78c9b3b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c811660048301529091169063e78c9b3b90602401602060405180830381865afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c191906129e6565b8383815181106108d3576108d36129ff565b6020908102919091010151606001526101208101516040517f79ce6b8c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152909116906379ce6b8c90602401602060405180830381865afa158015610955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109799190612b98565b64ffffffffff16838381518110610992576109926129ff565b602002602001015160c00181815250505b50806109ae81612be2565b9150506104a6565b509890975095505050505050565b606060008273ffffffffffffffffffffffffffffffffffffffff1663026b1d5f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a37919061280c565b90508073ffffffffffffffffffffffffffffffffffffffff1663d1946dbc6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610a84573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aac91908101906128d6565b9392505050565b606060005b60208160ff16108015610b045750828160ff1660208110610adb57610adb6129ff565b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b15610b1b5780610b1381612c1b565b915050610ab8565b60008160ff1667ffffffffffffffff811115610b3957610b39612829565b6040519080825280601f01601f191660200182016040528015610b63576020820181803683370190505b509050600091505b60208260ff16108015610bb75750838260ff1660208110610b8e57610b8e6129ff565b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b15610aac57838260ff1660208110610bd157610bd16129ff565b1a60f81b818360ff1681518110610bea57610bea6129ff565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535081610c2381612c1b565b925050610b6b565b6060610c5b6040518060800160405280600081526020016000815260200160008152602001600060ff1681525090565b60008373ffffffffffffffffffffffffffffffffffffffff1663fca513a86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccc919061280c565b905060008473ffffffffffffffffffffffffffffffffffffffff1663026b1d5f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3f919061280c565b905060008573ffffffffffffffffffffffffffffffffffffffff1663e860accb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db2919061280c565b905060008273ffffffffffffffffffffffffffffffffffffffff1663d1946dbc6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e01573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e2991908101906128d6565b90506000815167ffffffffffffffff811115610e4757610e47612829565b60405190808252806020026020018201604052801561104357816020015b604080516106c0810182526000808252606060208084018290529383018190528083018290526080830182905260a0830182905260c0830182905260e08301829052610100830182905261012083018290526101408301829052610160830182905261018083018290526101a083018290526101c083018290526101e08301829052610200830182905261022083018290526102408301829052610260830182905261028083018290526102a083018290526102c083018290526102e08301829052610300830182905261032083018290526103408301829052610360830182905261038083018290526103a083018290526103c083018290526103e08301829052610400830182905261042083018290526104408301829052610460830182905261048083018290526104a083018290526104c083018290526104e08301829052610500830182905261052083018290526105408301829052610560830182905261058083018290526105a083018290526105c083018290526105e0830182905261060083018290526106208301829052610640830182905261066083018290526106808301526106a082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610e655790505b50905060005b8251811015611e4a576000828281518110611066576110666129ff565b60200260200101519050838281518110611082576110826129ff565b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff9081168083526040517f35ea6a7500000000000000000000000000000000000000000000000000000000815260048101919091526000918816906335ea6a75906024016101e060405180830381865afa158015611103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111279190612a75565b60208101516fffffffffffffffffffffffffffffffff9081166101a0850152606082015181166101c085015260408083015182166101e08601526080830151821661020086015260a083015190911661022085015260c082015164ffffffffff1661024085015261010082015173ffffffffffffffffffffffffffffffffffffffff908116610260860152610120830151811661028086015261014083015181166102a086015261016083015181166102c0860152845191517fb3596f0700000000000000000000000000000000000000000000000000000000815291811660048301529192509089169063b3596f0790602401602060405180830381865afa158015611238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125c91906129e6565b61038083015281516040517f92bf2be000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152908916906392bf2be090602401602060405180830381865afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f5919061280c565b73ffffffffffffffffffffffffffffffffffffffff9081166103a084015282516102608401516040517f70a0823100000000000000000000000000000000000000000000000000000000815290831660048201529116906370a0823190602401602060405180830381865afa158015611372573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139691906129e6565b826102e001818152505081610280015173ffffffffffffffffffffffffffffffffffffffff1663797743386040518163ffffffff1660e01b8152600401608060405180830381865afa1580156113f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114149190612c3b565b64ffffffffff16610340860152610320850152506103008301526102a0820151604080517fb1bf962d000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169163b1bf962d916004808201926020929091908290030181865afa1580156114a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c591906129e6565b610360830152815173ffffffffffffffffffffffffffffffffffffffff16739f8f72aa9304c8b593d555f12ef6589cc3a579a21415611610576000826000015173ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157391906129e6565b90506000836000015173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ea91906129e6565b90506115f582610ab3565b604085015261160381610ab3565b60208501525061170c9050565b816000015173ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561165f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116879190810190612ce6565b8260400181905250816000015173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa1580156116de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117069190810190612ce6565b60208301525b8051805161ffff604082811c821660e087015260ff603084901c81166060880152602084811c841660c0890152601085901c841660a08901529284166080880181905215156101008801528451671000000000000000811615156104a08901526708000000000000008116151561014089015267040000000000000081161515610120890152670200000000000000811615156101808901526701000000000000001615156101608801526102c087015182517f0b3429a2000000000000000000000000000000000000000000000000000000008152925160a89590951c9091169373ffffffffffffffffffffffffffffffffffffffff90911692630b3429a292600480820193918290030181865afa925050508015611849575060408051601f3d908101601f19168201909252611846918101906129e6565b60015b61185257611859565b6103c08501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff1663f42024096040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156118c5575060408051601f3d908101601f191682019092526118c2918101906129e6565b60015b6118ce576118d5565b6103e08501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff1663d5cd73916040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611941575060408051601f3d908101601f1916820190925261193e918101906129e6565b60015b61194a57611951565b6104008501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff166314e32da46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156119bd575060408051601f3d908101601f191682019092526119ba918101906129e6565b60015b6119c6576119cd565b6104208501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff1663acd786866040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611a39575060408051601f3d908101601f19168201909252611a36918101906129e6565b60015b611a4257611a49565b6104408501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff166334762ca56040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611ab5575060408051601f3d908101601f19168201909252611ab2918101906129e6565b60015b611abe57611ac5565b6104608501525b836102c0015173ffffffffffffffffffffffffffffffffffffffff166354c365c66040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611b31575060408051601f3d908101601f19168201909252611b2e918101906129e6565b60015b611b3a57611b41565b6104808501525b60ff81166105a0850152815160d41c64ffffffffff16846105600181815250508773ffffffffffffffffffffffffffffffffffffffff166369b169e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906129e6565b6105808501528151640fffffffff605082901c81169160741c166105e08601526105c085015283516040517fd7ed3ef400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529089169063d7ed3ef490602401602060405180830381865afa925050508015611c81575060408051601f3d908101601f19168201909252611c7e91810190612d1b565b60015b611cc3573d808015611caf576040519150601f19603f3d011682016040523d82523d6000602084013e611cb4565b606091505b50506001610540850152611ccc565b15156105408501525b815167400000000000000016151515156104c08501526101a08301516fffffffffffffffffffffffffffffffff9081166105008601526101c08401518116610520860152610180840151166104e08501526105a08401516040517f6c6f6ae100000000000000000000000000000000000000000000000000000000815260ff909116600482015260009073ffffffffffffffffffffffffffffffffffffffff8b1690636c6f6ae190602401600060405180830381865afa158015611d94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dbc9190810190612d3d565b805161ffff90811661060088015260208201518116610620880152604082015116610640870152606081015173ffffffffffffffffffffffffffffffffffffffff1661066087015260808101516106808701529050611e25835167200000000000000016151590565b15156106a09095019490945250839250611e429150829050612be2565b915050611049565b50611e796040518060800160405280600081526020016000815260200160008152602001600060ff1681525090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0891906129e6565b8160400181815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa09190612df0565b60ff166060820152604080517f8c89b64f000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff881691638c89b64f9160048083019260209291908290030181865afa92505050801561202f575060408051601f3d908101601f1916820190925261202c918101906129e6565b60015b61210f573d80801561205d576040519150601f19603f3d011682016040523d82523d6000602084013e612062565b606091505b50670de0b6b3a76400008260000181815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210491906129e6565b602083015250612118565b80825260208201525b909890975095505050505050565b60408051808201909152600281527f37340000000000000000000000000000000000000000000000000000000000006020820152600090608083106121a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612198919061242b565b60405180910390fd5b50509051600191821b82011c16151590565b60408051808201909152600281527f3734000000000000000000000000000000000000000000000000000000000000602082015260009060808310612225576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612198919061242b565b50509051600191821b1c16151590565b73ffffffffffffffffffffffffffffffffffffffff8116811461225757600080fd5b50565b6000806040838503121561226d57600080fd5b823561227881612235565b9150602083013561228881612235565b809150509250929050565b6040808252835182820181905260009190606090818501906020808901865b83811015612320578151805173ffffffffffffffffffffffffffffffffffffffff16865283810151848701528781015115158887015286810151878701526080808201519087015260a0808201519087015260c0908101519086015260e090940193908201906001016122b2565b50508295506123338188018960ff169052565b50505050509392505050565b60006020828403121561235157600080fd5b8135610aac81612235565b6020808252825182820181905260009190848201906040850190845b818110156123aa57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101612378565b50909695505050505050565b6000602082840312156123c857600080fd5b5035919050565b60005b838110156123ea5781810151838201526020016123d2565b838111156123f9576000848401525b50505050565b600081518084526124178160208601602086016123cf565b601f01601f19169290920160200192915050565b602081526000610aac60208301846123ff565b600060a080830181845280865180835260c092508286019150828160051b8701016020808a0160005b848110156127ba578984037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff400186528151805173ffffffffffffffffffffffffffffffffffffffff1685526106c08482015181868801526124ca828801826123ff565b915050604080830151878303828901526124e483826123ff565b606085810151908a0152608080860151908a01528c8501518d8a01528b8501518c8a015260e080860151908a0152610100808601511515908a0152610120808601511515908a0152610140808601511515908a0152610160808601511515908a0152610180808601511515908a01526101a0808601516fffffffffffffffffffffffffffffffff908116918b01919091526101c0808701518216908b01526101e0808701518216908b0152610200808701518216908b0152610220808701518216908b01526102408087015164ffffffffff16908b01526102608087015173ffffffffffffffffffffffffffffffffffffffff908116918c0191909152610280808801518216908c01526102a0808801518216908c01526102c0808801518216908c01526102e080880151908c015261030080880151908c015261032080880151908c015261034080880151908c015261036080880151908c015261038080880151908c01526103a0808801518216908c01526103c080880151908c01526103e080880151908c015261040080880151908c015261042080880151908c015261044080880151908c015261046080880151908c015261048080880151908c01526104a0808801511515908c01526104c0808801511515908c01526104e0808801518316908c0152610500808801518316908c015261052080880151909216918b0191909152610540808701511515908b015261056080870151908b015261058080870151908b01526105a08087015160ff16908b01526105c080870151908b01526105e080870151908b01526106008087015161ffff908116918c0191909152610620808801518216908c015261064080880151909116908b015261066080870151909116908a0152610680808601518a8303828c01529194509250905061278c83826123ff565b925050506106a08083015192506127a68188018415159052565b509684019694505090820190600101612467565b50508196506127ef8189018a80518252602081015160208301526040810151604083015260ff60608201511660608301525050565b5050505050509392505050565b805161280781612235565b919050565b60006020828403121561281e57600080fd5b8151610aac81612235565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101e0810167ffffffffffffffff8111828210171561287c5761287c612829565b60405290565b60405160a0810167ffffffffffffffff8111828210171561287c5761287c612829565b604051601f8201601f1916810167ffffffffffffffff811182821017156128ce576128ce612829565b604052919050565b600060208083850312156128e957600080fd5b825167ffffffffffffffff8082111561290157600080fd5b818501915085601f83011261291557600080fd5b81518181111561292757612927612829565b8060051b91506129388483016128a5565b818152918301840191848101908884111561295257600080fd5b938501935b8385101561297c578451925061296c83612235565b8282529385019390850190612957565b98975050505050505050565b60006020828403121561299a57600080fd5b6040516020810181811067ffffffffffffffff821117156129bd576129bd612829565b6040529151825250919050565b6000602082840312156129dc57600080fd5b610aac8383612988565b6000602082840312156129f857600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80516fffffffffffffffffffffffffffffffff8116811461280757600080fd5b805164ffffffffff8116811461280757600080fd5b805161ffff8116811461280757600080fd5b60006101e08284031215612a8857600080fd5b612a90612858565b612a9a8484612988565b8152612aa860208401612a2e565b6020820152612ab960408401612a2e565b6040820152612aca60608401612a2e565b6060820152612adb60808401612a2e565b6080820152612aec60a08401612a2e565b60a0820152612afd60c08401612a4e565b60c0820152612b0e60e08401612a63565b60e0820152610100612b218185016127fc565b90820152610120612b338482016127fc565b90820152610140612b458482016127fc565b90820152610160612b578482016127fc565b90820152610180612b69848201612a2e565b908201526101a0612b7b848201612a2e565b908201526101c0612b8d848201612a2e565b908201529392505050565b600060208284031215612baa57600080fd5b610aac82612a4e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c1457612c14612bb3565b5060010190565b600060ff821660ff811415612c3257612c32612bb3565b60010192915050565b60008060008060808587031215612c5157600080fd5b845193506020850151925060408501519150612c6f60608601612a4e565b905092959194509250565b600082601f830112612c8b57600080fd5b815167ffffffffffffffff811115612ca557612ca5612829565b612cb86020601f19601f840116016128a5565b818152846020838601011115612ccd57600080fd5b612cde8260208301602087016123cf565b949350505050565b600060208284031215612cf857600080fd5b815167ffffffffffffffff811115612d0f57600080fd5b612cde84828501612c7a565b600060208284031215612d2d57600080fd5b81518015158114610aac57600080fd5b600060208284031215612d4f57600080fd5b815167ffffffffffffffff80821115612d6757600080fd5b9083019060a08286031215612d7b57600080fd5b612d83612882565b612d8c83612a63565b8152612d9a60208401612a63565b6020820152612dab60408401612a63565b60408201526060830151612dbe81612235565b6060820152608083015182811115612dd557600080fd5b612de187828601612c7a565b60808301525095945050505050565b600060208284031215612e0257600080fd5b815160ff81168114610aac57600080fdfea264697066735822122064141f2b3a8990922c5319ddf6e5b1729666732cfc5485969196ed880b91ed9664736f6c634300080a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
