{
  "_format": "hh-sol-artifact-1",
  "contractName": "PriceReader",
  "sourceName": "contracts/utils/implementation/PriceReader.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_addressUpdater",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ftsoRegistry",
      "outputs": [
        {
          "internalType": "contract IFtsoRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAddressUpdater",
      "outputs": [
        {
          "internalType": "address",
          "name": "_addressUpdater",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAllCurrentPrices",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "symbol",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "price",
              "type": "uint256"
            },
            {
              "internalType": "contract IFtso",
              "name": "ftsoAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "ftsoIndex",
              "type": "uint256"
            }
          ],
          "internalType": "struct PriceReader.PriceInfo[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_epochId",
          "type": "uint256"
        }
      ],
      "name": "getAllPrices",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "symbol",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "price",
              "type": "uint256"
            },
            {
              "internalType": "contract IFtso",
              "name": "ftsoAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "ftsoIndex",
              "type": "uint256"
            }
          ],
          "internalType": "struct PriceReader.PriceInfo[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_indices",
          "type": "uint256[]"
        }
      ],
      "name": "getCurrentPricesByIndices",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string[]",
          "name": "_symbols",
          "type": "string[]"
        }
      ],
      "name": "getCurrentPricesBySymbols",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_epochId",
          "type": "uint256"
        },
        {
          "internalType": "uint256[]",
          "name": "_indices",
          "type": "uint256[]"
        }
      ],
      "name": "getPricesByIndices",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_epochId",
          "type": "uint256"
        },
        {
          "internalType": "string[]",
          "name": "_symbols",
          "type": "string[]"
        }
      ],
      "name": "getPricesBySymbols",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_contractNameHashes",
          "type": "bytes32[]"
        },
        {
          "internalType": "address[]",
          "name": "_contractAddresses",
          "type": "address[]"
        }
      ],
      "name": "updateContractAddresses",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516117c03803806117c083398101604081905261002f91610064565b8061003981610040565b5050610092565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600060208284031215610075578081fd5b81516001600160a01b038116811461008b578182fd5b9392505050565b61171f806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80636ba31fa1116100665780636ba31fa1146100e657806379d5ea4b146101065780637b90cd71146101195780638fddde901461012c578063b00c0b761461013f57610093565b806304bc1afb1461009857806338b5f869146100c15780635267a15d146100d657806358f9296f146100de575b600080fd5b6100ab6100a636600461146b565b610154565b6040516100b8919061154f565b60405180910390f35b6100c9610165565b6040516100b8919061153b565b6100c9610174565b6100ab610199565b6100f96100f43660046112fe565b6102b1565b6040516100b891906115e0565b6100f96101143660046112c4565b610557565b6100f961012736600461149b565b6107f4565b6100f961013a3660046114d5565b610981565b61015261014d36600461120e565b610b06565b005b606061015f82610bb1565b92915050565b6000546001600160a01b031681565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054604080516306a2ba2960e01b81529051606093926001600160a01b0316916306a2ba299160048083019286929190829003018186803b1580156101df57600080fd5b505afa1580156101f3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021b9190810190611330565b9150506102ab8160008151811061022e57fe5b60200260200101516001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561026e57600080fd5b505afa158015610282573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a69190611483565b610bb1565b91505090565b6060600082516001600160401b03811180156102cc57600080fd5b506040519080825280602002602001820160405280156102f6578160200160208202803683370190505b50905060008060009054906101000a90046001600160a01b03166001600160a01b031663d75f6d818560008151811061032b57fe5b60200260200101516040518263ffffffff1660e01b815260040161034f9190611637565b60206040518083038186803b15801561036757600080fd5b505afa15801561037b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039f91906113df565b6001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103d757600080fd5b505afa1580156103eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040f9190611483565b905060005b845181101561054e5760005485516001600160a01b039091169063d75f6d819087908490811061044057fe5b60200260200101516040518263ffffffff1660e01b81526004016104649190611637565b60206040518083038186803b15801561047c57600080fd5b505afa158015610490573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b491906113df565b6001600160a01b0316637d1d6f12836040518263ffffffff1660e01b81526004016104df9190611637565b60206040518083038186803b1580156104f757600080fd5b505afa15801561050b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052f9190611483565b83828151811061053b57fe5b6020908102919091010152600101610414565b50909392505050565b6060600082516001600160401b038111801561057257600080fd5b5060405190808252806020026020018201604052801561059c578160200160208202803683370190505b50905060008060009054906101000a90046001600160a01b03166001600160a01b03166397da6af4856000815181106105d157fe5b60200260200101516040518263ffffffff1660e01b81526004016105f59190611624565b60206040518083038186803b15801561060d57600080fd5b505afa158015610621573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064591906113df565b6001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561067d57600080fd5b505afa158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b59190611483565b905060005b845181101561054e5760005485516001600160a01b03909116906397da6af4908790849081106106e657fe5b60200260200101516040518263ffffffff1660e01b815260040161070a9190611624565b60206040518083038186803b15801561072257600080fd5b505afa158015610736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075a91906113df565b6001600160a01b0316637d1d6f12836040518263ffffffff1660e01b81526004016107859190611637565b60206040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190611483565b8382815181106107e157fe5b60209081029190910101526001016106ba565b6060600082516001600160401b038111801561080f57600080fd5b50604051908082528060200260200182016040528015610839578160200160208202803683370190505b50905060005b83518110156109795760005484516001600160a01b03909116906397da6af49086908490811061086b57fe5b60200260200101516040518263ffffffff1660e01b815260040161088f9190611624565b60206040518083038186803b1580156108a757600080fd5b505afa1580156108bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108df91906113df565b6001600160a01b0316637d1d6f12866040518263ffffffff1660e01b815260040161090a9190611637565b60206040518083038186803b15801561092257600080fd5b505afa158015610936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095a9190611483565b82828151811061096657fe5b602090810291909101015260010161083f565b509392505050565b6060600082516001600160401b038111801561099c57600080fd5b506040519080825280602002602001820160405280156109c6578160200160208202803683370190505b50905060005b83518110156109795760005484516001600160a01b039091169063d75f6d81908690849081106109f857fe5b60200260200101516040518263ffffffff1660e01b8152600401610a1c9190611637565b60206040518083038186803b158015610a3457600080fd5b505afa158015610a48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6c91906113df565b6001600160a01b0316637d1d6f12866040518263ffffffff1660e01b8152600401610a979190611637565b60206040518083038186803b158015610aaf57600080fd5b505afa158015610ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae79190611483565b828281518110610af357fe5b60209081029190910101526001016109cc565b610b0e610174565b6001600160a01b0316336001600160a01b031614610b6a576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b610ba3610b9e83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250610e78565b610fa5565b610bad8282610fc9565b5050565b606060008060008054906101000a90046001600160a01b03166001600160a01b03166306a2ba296040518163ffffffff1660e01b815260040160006040518083038186803b158015610c0257600080fd5b505afa158015610c16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c3e9190810190611330565b805191935091506000816001600160401b0381118015610c5d57600080fd5b50604051908082528060200260200182016040528015610c9757816020015b610c8461101c565b815260200190600190039081610c7c5790505b50905060005b82811015610e6e57838181518110610cb157fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015610cf157600080fd5b505afa158015610d05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2d9190810190611402565b828281518110610d3957fe5b602002602001015160000181905250838181518110610d5457fe5b60200260200101516001600160a01b0316637d1d6f12886040518263ffffffff1660e01b8152600401610d879190611637565b60206040518083038186803b158015610d9f57600080fd5b505afa158015610db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd79190611483565b828281518110610de357fe5b60200260200101516020018181525050838181518110610dff57fe5b6020026020010151828281518110610e1357fe5b6020026020010151604001906001600160a01b031690816001600160a01b031681525050848181518110610e4357fe5b6020026020010151828281518110610e5757fe5b602090810291909101015160600152600101610c9d565b5095945050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015610ebc578181015183820152602001610ea4565b50505050905090810190601f168015610ee95780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015610f5157868181518110610f1f57fe5b6020026020010151831415610f4957858181518110610f3a57fe5b60200260200101519150610f51565b600101610f0a565b506001600160a01b038116610f9c576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b610ff882826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250610e78565b600080546001600160a01b0319166001600160a01b03929092169190911790555050565b6040518060800160405280606081526020016000815260200160006001600160a01b03168152602001600081525090565b600082601f83011261105d578081fd5b8135602061107261106d83611663565b611640565b828152818101908583018385028701840188101561108e578586fd5b855b858110156110b55781356110a3816116d1565b84529284019290840190600101611090565b5090979650505050505050565b600082601f8301126110d2578081fd5b815160206110e261106d83611663565b82815281810190858301838502870184018810156110fe578586fd5b855b858110156110b5578151611113816116d1565b84529284019290840190600101611100565b600082601f830112611135578081fd5b8135602061114561106d83611663565b82815281810190858301855b858110156110b5578135880189603f82011261116b578788fd5b85810135604061117d61106d83611680565b8281528c82848601011115611190578a8bfd5b828285018a83013791820188018a9052508552509284019290840190600101611151565b600082601f8301126111c4578081fd5b813560206111d461106d83611663565b82815281810190858301838502870184018810156111f0578586fd5b855b858110156110b5578135845292840192908401906001016111f2565b60008060408385031215611220578182fd5b82356001600160401b0380821115611236578384fd5b818501915085601f830112611249578384fd5b8135602061125961106d83611663565b82815281810190858301838502870184018b1015611275578889fd5b8896505b84871015611297578035835260019690960195918301918301611279565b50965050860135925050808211156112ad578283fd5b506112ba8582860161104d565b9150509250929050565b6000602082840312156112d5578081fd5b81356001600160401b038111156112ea578182fd5b6112f684828501611125565b949350505050565b60006020828403121561130f578081fd5b81356001600160401b03811115611324578182fd5b6112f6848285016111b4565b60008060408385031215611342578182fd5b82516001600160401b0380821115611358578384fd5b818501915085601f83011261136b578384fd5b8151602061137b61106d83611663565b82815281810190858301838502870184018b1015611397578889fd5b8896505b848710156113b957805183526001969096019591830191830161139b565b50918801519196509093505050808211156113d2578283fd5b506112ba858286016110c2565b6000602082840312156113f0578081fd5b81516113fb816116d1565b9392505050565b600060208284031215611413578081fd5b81516001600160401b03811115611428578182fd5b8201601f81018413611438578182fd5b805161144661106d82611680565b81815285602083850101111561145a578384fd5b610f9c8260208301602086016116a1565b60006020828403121561147c578081fd5b5035919050565b600060208284031215611494578081fd5b5051919050565b600080604083850312156114ad578182fd5b8235915060208301356001600160401b038111156114c9578182fd5b6112ba85828601611125565b600080604083850312156114e7578182fd5b8235915060208301356001600160401b03811115611503578182fd5b6112ba858286016111b4565b600081518084526115278160208601602086016116a1565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b60208082528251828201819052600091906040908185019080840286018301878501865b838110156115d257603f198984030185528151608081518186526115998287018261150f565b838b0151878c0152898401516001600160a01b03168a880152606093840151939096019290925250509386019390860190600101611573565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611618578351835292840192918401916001016115fc565b50909695505050505050565b6000602082526113fb602083018461150f565b90815260200190565b6040518181016001600160401b038111828210171561165b57fe5b604052919050565b60006001600160401b0382111561167657fe5b5060209081020190565b60006001600160401b0382111561169357fe5b50601f01601f191660200190565b60005b838110156116bc5781810151838201526020016116a4565b838111156116cb576000848401525b50505050565b6001600160a01b03811681146116e657600080fd5b5056fea2646970667358221220785b6243ec79e1996ea639e71379b38af9d773cd89558d8555a9eb385536f00964736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c80636ba31fa1116100665780636ba31fa1146100e657806379d5ea4b146101065780637b90cd71146101195780638fddde901461012c578063b00c0b761461013f57610093565b806304bc1afb1461009857806338b5f869146100c15780635267a15d146100d657806358f9296f146100de575b600080fd5b6100ab6100a636600461146b565b610154565b6040516100b8919061154f565b60405180910390f35b6100c9610165565b6040516100b8919061153b565b6100c9610174565b6100ab610199565b6100f96100f43660046112fe565b6102b1565b6040516100b891906115e0565b6100f96101143660046112c4565b610557565b6100f961012736600461149b565b6107f4565b6100f961013a3660046114d5565b610981565b61015261014d36600461120e565b610b06565b005b606061015f82610bb1565b92915050565b6000546001600160a01b031681565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054604080516306a2ba2960e01b81529051606093926001600160a01b0316916306a2ba299160048083019286929190829003018186803b1580156101df57600080fd5b505afa1580156101f3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021b9190810190611330565b9150506102ab8160008151811061022e57fe5b60200260200101516001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561026e57600080fd5b505afa158015610282573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a69190611483565b610bb1565b91505090565b6060600082516001600160401b03811180156102cc57600080fd5b506040519080825280602002602001820160405280156102f6578160200160208202803683370190505b50905060008060009054906101000a90046001600160a01b03166001600160a01b031663d75f6d818560008151811061032b57fe5b60200260200101516040518263ffffffff1660e01b815260040161034f9190611637565b60206040518083038186803b15801561036757600080fd5b505afa15801561037b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039f91906113df565b6001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103d757600080fd5b505afa1580156103eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040f9190611483565b905060005b845181101561054e5760005485516001600160a01b039091169063d75f6d819087908490811061044057fe5b60200260200101516040518263ffffffff1660e01b81526004016104649190611637565b60206040518083038186803b15801561047c57600080fd5b505afa158015610490573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b491906113df565b6001600160a01b0316637d1d6f12836040518263ffffffff1660e01b81526004016104df9190611637565b60206040518083038186803b1580156104f757600080fd5b505afa15801561050b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052f9190611483565b83828151811061053b57fe5b6020908102919091010152600101610414565b50909392505050565b6060600082516001600160401b038111801561057257600080fd5b5060405190808252806020026020018201604052801561059c578160200160208202803683370190505b50905060008060009054906101000a90046001600160a01b03166001600160a01b03166397da6af4856000815181106105d157fe5b60200260200101516040518263ffffffff1660e01b81526004016105f59190611624565b60206040518083038186803b15801561060d57600080fd5b505afa158015610621573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064591906113df565b6001600160a01b031663a29a839f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561067d57600080fd5b505afa158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b59190611483565b905060005b845181101561054e5760005485516001600160a01b03909116906397da6af4908790849081106106e657fe5b60200260200101516040518263ffffffff1660e01b815260040161070a9190611624565b60206040518083038186803b15801561072257600080fd5b505afa158015610736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075a91906113df565b6001600160a01b0316637d1d6f12836040518263ffffffff1660e01b81526004016107859190611637565b60206040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190611483565b8382815181106107e157fe5b60209081029190910101526001016106ba565b6060600082516001600160401b038111801561080f57600080fd5b50604051908082528060200260200182016040528015610839578160200160208202803683370190505b50905060005b83518110156109795760005484516001600160a01b03909116906397da6af49086908490811061086b57fe5b60200260200101516040518263ffffffff1660e01b815260040161088f9190611624565b60206040518083038186803b1580156108a757600080fd5b505afa1580156108bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108df91906113df565b6001600160a01b0316637d1d6f12866040518263ffffffff1660e01b815260040161090a9190611637565b60206040518083038186803b15801561092257600080fd5b505afa158015610936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095a9190611483565b82828151811061096657fe5b602090810291909101015260010161083f565b509392505050565b6060600082516001600160401b038111801561099c57600080fd5b506040519080825280602002602001820160405280156109c6578160200160208202803683370190505b50905060005b83518110156109795760005484516001600160a01b039091169063d75f6d81908690849081106109f857fe5b60200260200101516040518263ffffffff1660e01b8152600401610a1c9190611637565b60206040518083038186803b158015610a3457600080fd5b505afa158015610a48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6c91906113df565b6001600160a01b0316637d1d6f12866040518263ffffffff1660e01b8152600401610a979190611637565b60206040518083038186803b158015610aaf57600080fd5b505afa158015610ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae79190611483565b828281518110610af357fe5b60209081029190910101526001016109cc565b610b0e610174565b6001600160a01b0316336001600160a01b031614610b6a576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b610ba3610b9e83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250610e78565b610fa5565b610bad8282610fc9565b5050565b606060008060008054906101000a90046001600160a01b03166001600160a01b03166306a2ba296040518163ffffffff1660e01b815260040160006040518083038186803b158015610c0257600080fd5b505afa158015610c16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c3e9190810190611330565b805191935091506000816001600160401b0381118015610c5d57600080fd5b50604051908082528060200260200182016040528015610c9757816020015b610c8461101c565b815260200190600190039081610c7c5790505b50905060005b82811015610e6e57838181518110610cb157fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015610cf157600080fd5b505afa158015610d05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2d9190810190611402565b828281518110610d3957fe5b602002602001015160000181905250838181518110610d5457fe5b60200260200101516001600160a01b0316637d1d6f12886040518263ffffffff1660e01b8152600401610d879190611637565b60206040518083038186803b158015610d9f57600080fd5b505afa158015610db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd79190611483565b828281518110610de357fe5b60200260200101516020018181525050838181518110610dff57fe5b6020026020010151828281518110610e1357fe5b6020026020010151604001906001600160a01b031690816001600160a01b031681525050848181518110610e4357fe5b6020026020010151828281518110610e5757fe5b602090810291909101015160600152600101610c9d565b5095945050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015610ebc578181015183820152602001610ea4565b50505050905090810190601f168015610ee95780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015610f5157868181518110610f1f57fe5b6020026020010151831415610f4957858181518110610f3a57fe5b60200260200101519150610f51565b600101610f0a565b506001600160a01b038116610f9c576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b610ff882826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250610e78565b600080546001600160a01b0319166001600160a01b03929092169190911790555050565b6040518060800160405280606081526020016000815260200160006001600160a01b03168152602001600081525090565b600082601f83011261105d578081fd5b8135602061107261106d83611663565b611640565b828152818101908583018385028701840188101561108e578586fd5b855b858110156110b55781356110a3816116d1565b84529284019290840190600101611090565b5090979650505050505050565b600082601f8301126110d2578081fd5b815160206110e261106d83611663565b82815281810190858301838502870184018810156110fe578586fd5b855b858110156110b5578151611113816116d1565b84529284019290840190600101611100565b600082601f830112611135578081fd5b8135602061114561106d83611663565b82815281810190858301855b858110156110b5578135880189603f82011261116b578788fd5b85810135604061117d61106d83611680565b8281528c82848601011115611190578a8bfd5b828285018a83013791820188018a9052508552509284019290840190600101611151565b600082601f8301126111c4578081fd5b813560206111d461106d83611663565b82815281810190858301838502870184018810156111f0578586fd5b855b858110156110b5578135845292840192908401906001016111f2565b60008060408385031215611220578182fd5b82356001600160401b0380821115611236578384fd5b818501915085601f830112611249578384fd5b8135602061125961106d83611663565b82815281810190858301838502870184018b1015611275578889fd5b8896505b84871015611297578035835260019690960195918301918301611279565b50965050860135925050808211156112ad578283fd5b506112ba8582860161104d565b9150509250929050565b6000602082840312156112d5578081fd5b81356001600160401b038111156112ea578182fd5b6112f684828501611125565b949350505050565b60006020828403121561130f578081fd5b81356001600160401b03811115611324578182fd5b6112f6848285016111b4565b60008060408385031215611342578182fd5b82516001600160401b0380821115611358578384fd5b818501915085601f83011261136b578384fd5b8151602061137b61106d83611663565b82815281810190858301838502870184018b1015611397578889fd5b8896505b848710156113b957805183526001969096019591830191830161139b565b50918801519196509093505050808211156113d2578283fd5b506112ba858286016110c2565b6000602082840312156113f0578081fd5b81516113fb816116d1565b9392505050565b600060208284031215611413578081fd5b81516001600160401b03811115611428578182fd5b8201601f81018413611438578182fd5b805161144661106d82611680565b81815285602083850101111561145a578384fd5b610f9c8260208301602086016116a1565b60006020828403121561147c578081fd5b5035919050565b600060208284031215611494578081fd5b5051919050565b600080604083850312156114ad578182fd5b8235915060208301356001600160401b038111156114c9578182fd5b6112ba85828601611125565b600080604083850312156114e7578182fd5b8235915060208301356001600160401b03811115611503578182fd5b6112ba858286016111b4565b600081518084526115278160208601602086016116a1565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b60208082528251828201819052600091906040908185019080840286018301878501865b838110156115d257603f198984030185528151608081518186526115998287018261150f565b838b0151878c0152898401516001600160a01b03168a880152606093840151939096019290925250509386019390860190600101611573565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611618578351835292840192918401916001016115fc565b50909695505050505050565b6000602082526113fb602083018461150f565b90815260200190565b6040518181016001600160401b038111828210171561165b57fe5b604052919050565b60006001600160401b0382111561167657fe5b5060209081020190565b60006001600160401b0382111561169357fe5b50601f01601f191660200190565b60005b838110156116bc5781810151838201526020016116a4565b838111156116cb576000848401525b50505050565b6001600160a01b03811681146116e657600080fd5b5056fea2646970667358221220785b6243ec79e1996ea639e71379b38af9d773cd89558d8555a9eb385536f00964736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
