/* Generated by ts-generator ver. 0.0.8 */ /* tslint:disable */ import { Contract, ContractFactory, Signer } from "ethers"; import { Provider } from "ethers/providers"; import { UnsignedTransaction } from "ethers/utils/transaction"; import { TransactionOverrides } from "."; import { LendingPoolAddressesProvider } from "./LendingPoolAddressesProvider"; export class LendingPoolAddressesProviderFactory extends ContractFactory { constructor(signer?: Signer) { super(_abi, _bytecode, signer); } deploy( overrides?: TransactionOverrides ): Promise { return super.deploy(overrides) as Promise; } getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { return super.getDeployTransaction(overrides); } attach(address: string): LendingPoolAddressesProvider { return super.attach(address) as LendingPoolAddressesProvider; } connect(signer: Signer): LendingPoolAddressesProviderFactory { return super.connect(signer) as LendingPoolAddressesProviderFactory; } static connect( address: string, signerOrProvider: Signer | Provider ): LendingPoolAddressesProvider { return new Contract( address, _abi, signerOrProvider ) as LendingPoolAddressesProvider; } } const _abi = [ { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "EthereumAddressUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "FeeProviderUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "LendingPoolConfiguratorUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "LendingPoolCoreUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "LendingPoolDataProviderUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "LendingPoolLiquidationManagerUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "LendingPoolManagerUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "LendingPoolParametersProviderUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "LendingPoolUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "LendingRateOracleUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferred", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "PriceOracleUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "bytes32", name: "id", type: "bytes32" }, { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "ProxyCreated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "newAddress", type: "address" } ], name: "TokenDistributorUpdated", type: "event" }, { inputs: [ { internalType: "bytes32", name: "_key", type: "bytes32" } ], name: "getAddress", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getFeeProvider", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getLendingPool", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getLendingPoolConfigurator", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getLendingPoolCore", outputs: [ { internalType: "address payable", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getLendingPoolDataProvider", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getLendingPoolLiquidationManager", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getLendingPoolManager", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getLendingPoolParametersProvider", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getLendingRateOracle", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getPriceOracle", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "getTokenDistributor", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "owner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "renounceOwnership", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_feeProvider", type: "address" } ], name: "setFeeProviderImpl", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_configurator", type: "address" } ], name: "setLendingPoolConfiguratorImpl", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_lendingPoolCore", type: "address" } ], name: "setLendingPoolCoreImpl", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_provider", type: "address" } ], name: "setLendingPoolDataProviderImpl", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_pool", type: "address" } ], name: "setLendingPoolImpl", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_manager", type: "address" } ], name: "setLendingPoolLiquidationManager", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_lendingPoolManager", type: "address" } ], name: "setLendingPoolManager", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_parametersProvider", type: "address" } ], name: "setLendingPoolParametersProviderImpl", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_lendingRateOracle", type: "address" } ], name: "setLendingRateOracle", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_priceOracle", type: "address" } ], name: "setPriceOracle", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_tokenDistributor", type: "address" } ], name: "setTokenDistributor", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "newOwner", type: "address" } ], name: "transferOwnership", outputs: [], stateMutability: "nonpayable", type: "function" } ]; const _bytecode = "0x608060405234801561001057600080fd5b5060006100216100c460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506100cc565b600033905090565b612e41806100db6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635aef021f116100de578063bfedc10311610097578063ee89129611610071578063ee89129614610791578063f2fde38b146107db578063fbeefc3c1461081f578063fca513a8146108695761018e565b8063bfedc103146106bf578063c12542df14610703578063ed6ff760146107475761018e565b80635aef021f14610555578063715018a614610599578063820d1274146105a357806385c858b1146105e75780638da5cb5b14610631578063a5eface21461067b5761018e565b806333128d591161014b57806340fdcadc1161012557806340fdcadc1461043f57806344ce375b14610483578063530e784f146104c75780635834eb9a1461050b5761018e565b806333128d59146103675780633618abba146103b157806338280e6b146103fb5761018e565b80630261bf8b1461019357806304061d8e146101dd5780631c8272041461022757806321f8a7211461026b5780632a62c636146102d95780632f58b80d1461031d575b600080fd5b61019b6108b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e56108e3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102696004803603602081101561023d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610913565b005b6102976004803603602081101561028157600080fd5b8101908080359060200190929190505050610a4c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61031b600480360360208110156102ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a89565b005b610325610bc2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61036f610bf2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103b9610c22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61043d6004803603602081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c52565b005b6104816004803603602081101561045557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d8b565b005b6104c56004803603602081101561049957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec4565b005b610509600480360360208110156104dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ffd565b005b610513611136565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105976004803603602081101561056b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611166565b005b6105a161129f565b005b6105e5600480360360208110156105b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611427565b005b6105ef611560565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610639611590565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106bd6004803603602081101561069157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b9565b005b610701600480360360208110156106d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116f2565b005b6107456004803603602081101561071957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061182b565b005b61074f611964565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610799611999565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61081d600480360360208110156107f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119c9565b005b610827611bd6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610871611c06565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006108de7f4c454e44494e475f504f4f4c0000000000000000000000000000000000000000610a4c565b905090565b600061090e7f504152414d45544552535f50524f564944455200000000000000000000000000610a4c565b905090565b61091b611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610a067f4c454e44494e475f504f4f4c5f434f524500000000000000000000000000000082611c3e565b8073ffffffffffffffffffffffffffffffffffffffff167f71c226bb2879778ca1298196bf7cc1256baee9d05b496c31ee627d35a471b5b760405160405180910390a250565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610a91611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610b7c7f4645455f50524f5649444552000000000000000000000000000000000000000082611c3e565b8073ffffffffffffffffffffffffffffffffffffffff167f18e1a55b8eff9c93921eecfa1462d6a8cbb80b3988db3eb14c039e43fdb2266160405160405180910390a250565b6000610bed7f444154415f50524f564944455200000000000000000000000000000000000000610a4c565b905090565b6000610c1d7f4c454e44494e475f504f4f4c5f4d414e41474552000000000000000000000000610a4c565b905090565b6000610c4d7f4c454e44494e475f524154455f4f5241434c4500000000000000000000000000610a4c565b905090565b610c5a611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610d457f544f4b454e5f4449535452494255544f520000000000000000000000000000008261200f565b8073ffffffffffffffffffffffffffffffffffffffff167fa8b48a56ec01f81c3615a21ec43e16b925c26293e0801cf6330427f2a687f05360405160405180910390a250565b610d93611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610e7e7f4c454e44494e475f504f4f4c5f4d414e414745520000000000000000000000008261200f565b8073ffffffffffffffffffffffffffffffffffffffff167fd5280c51185a38d36f7a0f5e56cac6248312bb70d0974782fa5a595127e0e08e60405160405180910390a250565b610ecc611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610fb77f4c49515549444154494f4e5f4d414e41474552000000000000000000000000008261200f565b8073ffffffffffffffffffffffffffffffffffffffff167f1a76cb769b814bc038223da86932b099b20aae03473683e6d98f5c3554e2606460405160405180910390a250565b611005611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6110f07f50524943455f4f5241434c4500000000000000000000000000000000000000008261200f565b8073ffffffffffffffffffffffffffffffffffffffff167fefe8ab924ca486283a79dc604baa67add51afb82af1db8ac386ebbba643cdffd60405160405180910390a250565b60006111617f4c49515549444154494f4e5f4d414e4147455200000000000000000000000000610a4c565b905090565b61116e611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461122f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6112597f4c454e44494e475f504f4f4c000000000000000000000000000000000000000082611c3e565b8073ffffffffffffffffffffffffffffffffffffffff167fc4e6c6cdf28d0edbd8bcf071d724d33cc2e7a30be7d06443925656e9cb492aa460405160405180910390a250565b6112a7611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611368576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61142f611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61151a7f4c454e44494e475f524154455f4f5241434c45000000000000000000000000008261200f565b8073ffffffffffffffffffffffffffffffffffffffff167f5c29179aba6942020a8a2d38f65de02fb6b7f784e7f049ed3a3cab97621859b560405160405180910390a250565b600061158b7f4c454e44494e475f504f4f4c5f434f4e464947555241544f5200000000000000610a4c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115c1611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6116ac7f504152414d45544552535f50524f56494445520000000000000000000000000082611c3e565b8073ffffffffffffffffffffffffffffffffffffffff167fce16ea9b2fd7cadddd0f7359971028f50b5ddba33dfae1a9bdea956fabb1e28060405160405180910390a250565b6116fa611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6117e57f444154415f50524f56494445520000000000000000000000000000000000000082611c3e565b8073ffffffffffffffffffffffffffffffffffffffff167f07890d7d10db37434d76ee4f2928fb2dc66227c3b3391206aced4f7bcb59cdb060405160405180910390a250565b611833611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61191e7f4c454e44494e475f504f4f4c5f434f4e464947555241544f520000000000000082611c3e565b8073ffffffffffffffffffffffffffffffffffffffff167fdfabe479bad36782fb1e77fbfddd4e382671713527e4786cfc93a022ae76372960405160405180910390a250565b6000806119907f4c454e44494e475f504f4f4c5f434f5245000000000000000000000000000000610a4c565b90508091505090565b60006119c47f544f4b454e5f4449535452494255544f52000000000000000000000000000000610a4c565b905090565b6119d1611c36565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612de66026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611c017f4645455f50524f56494445520000000000000000000000000000000000000000610a4c565b905090565b6000611c317f50524943455f4f5241434c450000000000000000000000000000000000000000610a4c565b905090565b600033905090565b6000611c4983610a4c565b90506000819050606030604051602401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040527fc4d66de8000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f0357604051611d4f90612065565b604051809103906000f080158015611d6b573d6000803e3d6000fd5b5091508173ffffffffffffffffffffffffffffffffffffffff1663cf7a1d778530846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611e40578082015181840152602081019050611e25565b50505050905090810190601f168015611e6d5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e8e57600080fd5b505af1158015611ea2573d6000803e3d6000fd5b50505050611eb0858361200f565b8173ffffffffffffffffffffffffffffffffffffffff167f1eb35cb4b5bbb23d152f3b4016a5a46c37a07ae930ed0956aba951e231142438866040518082815260200191505060405180910390a2612008565b8173ffffffffffffffffffffffffffffffffffffffff16634f1ef28685836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611fa2578082015181840152602081019050611f87565b50505050905090810190601f168015611fcf5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611fef57600080fd5b505af1158015612003573d6000803e3d6000fd5b505050505b5050505050565b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610d73806120738339019056fe608060405234801561001057600080fd5b50610d53806100206000396000f3fe6080604052600436106100745760003560e01c80638f2839701161004e5780638f283970146101c9578063cf7a1d771461021a578063d1f5789414610315578063f851a440146103f057610083565b80633659cfe6146100885780634f1ef286146100d95780635c60da1b1461017257610083565b3661008357610081610447565b005b600080fd5b34801561009457600080fd5b506100d7600480360360208110156100ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610461565b005b610170600480360360408110156100ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561012c57600080fd5b82018360208201111561013e57600080fd5b8035906020019184600183028401116401000000008311171561016057600080fd5b90919293919293905050506104b6565b005b34801561017e57600080fd5b5061018761058c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101d557600080fd5b50610218600480360360208110156101ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105e4565b005b6103136004803603606081101561023057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561028d57600080fd5b82018360208201111561029f57600080fd5b803590602001918460018302840111640100000000831117156102c157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061075d565b005b6103ee6004803603604081101561032b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561036857600080fd5b82018360208201111561037a57600080fd5b8035906020019184600183028401116401000000008311171561039c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061081f565b005b3480156103fc57600080fd5b506104056109a2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61044f6109fa565b61045f61045a610a04565b610a35565b565b610469610a5b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156104aa576104a581610a8c565b6104b3565b6104b2610447565b5b50565b6104be610a5b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561057e576104fa83610a8c565b60008373ffffffffffffffffffffffffffffffffffffffff168383604051808383808284378083019250505092505050600060405180830381855af49150503d8060008114610565576040519150601f19603f3d011682016040523d82523d6000602084013e61056a565b606091505b505090508061057857600080fd5b50610587565b610586610447565b5b505050565b6000610596610a5b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156105d8576105d1610a04565b90506105e1565b6105e0610447565b5b90565b6105ec610a5b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561075157600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180610cad6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6106ce610a5b565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161074c81610adb565b61075a565b610759610447565b5b50565b600073ffffffffffffffffffffffffffffffffffffffff1661077d610a04565b73ffffffffffffffffffffffffffffffffffffffff161461079d57600080fd5b6107a7838261081f565b600160405180807f656970313936372e70726f78792e61646d696e000000000000000000000000008152506013019050604051809103902060001c0360001b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b1461081157fe5b61081a82610adb565b505050565b600073ffffffffffffffffffffffffffffffffffffffff1661083f610a04565b73ffffffffffffffffffffffffffffffffffffffff161461085f57600080fd5b600160405180807f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000815250601c019050604051809103902060001c0360001b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b146108c957fe5b6108d282610b0a565b60008151111561099e5760008273ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b602083106109295780518252602082019150602081019050602083039250610906565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610989576040519150601f19603f3d011682016040523d82523d6000602084013e61098e565b606091505b505090508061099c57600080fd5b505b5050565b60006109ac610a5b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156109ee576109e7610a5b565b90506109f7565b6109f6610447565b5b90565b610a02610b97565b565b6000807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050805491505090565b3660008037600080366000845af43d6000803e8060008114610a56573d6000f35b3d6000fd5b6000807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b9050805491505090565b610a9581610b0a565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b90508181555050565b610b1381610c2d565b610b68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180610ce3603b913960400191505060405180910390fd5b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b90508181555050565b610b9f610a5b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610c7b6032913960400191505060405180910390fd5b610c2b610c78565b565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015610c6f57506000801b8214155b92505050919050565b56fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220a12941e9bce1bde36f44bb5c03c27af62469cfa6958fcac106926a5a40dbe4d464736f6c634300060800334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212205a6b01910506d53d78d74eddecc906aff4aef41d6489fb73bcb65465d0a1b34064736f6c63430006080033";