@gearbox-protocol/sdk 0.0.110 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/lib/apy/convexAPY.d.ts +1 -1
- package/lib/apy/convexAPY.js +7 -7
- package/lib/apy/curveAPY.js +4 -4
- package/lib/apy/index.d.ts +1 -1
- package/lib/apy/index.js +1 -1
- package/lib/apy/lidoAPY.js +7 -7
- package/lib/apy/yearnAPY.js +3 -3
- package/lib/contracts/adapters.js +1 -1
- package/lib/contracts/contracts.d.ts +5 -5
- package/lib/contracts/contracts.js +66 -71
- package/lib/contracts/contractsRegister.js +2 -2
- package/lib/contracts/protocols.js +6 -6
- package/lib/core/constants.d.ts +3 -2
- package/lib/core/constants.js +6 -5
- package/lib/core/creditAccount.d.ts +2 -2
- package/lib/core/creditManager.js +3 -3
- package/lib/core/creditSession.d.ts +1 -1
- package/lib/core/creditSession.js +1 -1
- package/lib/core/eventOrTx.d.ts +2 -2
- package/lib/core/eventOrTx.js +1 -1
- package/lib/core/events.d.ts +1 -1
- package/lib/core/events.js +32 -31
- package/lib/core/history.d.ts +2 -2
- package/lib/core/pool.js +1 -1
- package/lib/core/tokenDistributor.js +1 -1
- package/lib/core/transactions.js +22 -22
- package/lib/index.d.ts +29 -29
- package/lib/index.js +37 -37
- package/lib/oracles/oracles.d.ts +5 -6
- package/lib/oracles/priceFeeds.d.ts +1 -1
- package/lib/oracles/priceFeeds.js +292 -194
- package/lib/pathfinder/contracts.js +4 -4
- package/lib/pathfinder/curveLP.d.ts +2 -2
- package/lib/pathfinder/curveLP.js +4 -4
- package/lib/pathfinder/path.d.ts +3 -3
- package/lib/pathfinder/path.js +7 -7
- package/lib/pathfinder/tradeTypes.d.ts +2 -2
- package/lib/pathfinder/yVault.d.ts +3 -3
- package/lib/pathfinder/yVault.js +5 -5
- package/lib/strategies/convex.js +13 -13
- package/lib/strategies/creditFacade.js +6 -6
- package/lib/strategies/curve.js +13 -13
- package/lib/strategies/lido.d.ts +1 -1
- package/lib/strategies/lido.js +3 -3
- package/lib/strategies/uniswapV2.js +3 -3
- package/lib/strategies/uniswapV3.js +6 -6
- package/lib/strategies/yearn.js +7 -7
- package/lib/tokens/connectors.js +1 -1
- package/lib/tokens/convex.d.ts +2 -2
- package/lib/tokens/convex.js +50 -50
- package/lib/tokens/curveLP.d.ts +1 -1
- package/lib/tokens/curveLP.js +30 -30
- package/lib/tokens/gear.d.ts +1 -1
- package/lib/tokens/gear.js +6 -6
- package/lib/tokens/normal.js +176 -176
- package/lib/tokens/token.d.ts +3 -3
- package/lib/tokens/token.js +64 -64
- package/lib/tokens/tokenData.d.ts +1 -1
- package/lib/tokens/tokenData.js +4 -4
- package/lib/tokens/yearn.d.ts +1 -1
- package/lib/tokens/yearn.js +19 -19
- package/lib/utils/extracter.js +1 -1
- package/lib/utils/formatter.js +19 -12
- package/lib/utils/mappers.d.ts +1 -1
- package/lib/utils/mappers.js +1 -1
- package/lib/utils/multicall.js +2 -2
- package/lib/utils/network.js +3 -3
- package/lib/utils/repeater.js +6 -6
- package/package.json +30 -23
- package/.eslintignore +0 -5
- package/.eslintrc.js +0 -52
- package/.husky/pre-push +0 -4
- package/.idea/gearbox-sdk.iml +0 -12
- package/.idea/modules.xml +0 -8
- package/.idea/vcs.xml +0 -6
- package/.prettierrc +0 -10
- package/lib/apy/convexAPY copy.d.ts +0 -6
- package/lib/apy/convexAPY copy.js +0 -201
- package/lib/types/hardhat.d.ts +0 -2715
- package/src/abi/adapters/YearnV2.sol/YearnAdapter.dbg.json +0 -4
- package/src/abi/adapters/YearnV2.sol/YearnAdapter.json +0 -455
- package/src/abi/core/ACL.sol/ACL.dbg.json +0 -4
- package/src/abi/core/ACL.sol/ACL.json +0 -262
- package/src/abi/core/ACLTrait.sol/ACLTrait.dbg.json +0 -4
- package/src/abi/core/ACLTrait.sol/ACLTrait.json +0 -64
- package/src/abi/core/AccountMining.sol/AccountMining.dbg.json +0 -4
- package/src/abi/core/AccountMining.sol/AccountMining.json +0 -150
- package/src/abi/core/AddressProvider.sol/AddressProvider.dbg.json +0 -4
- package/src/abi/core/AddressProvider.sol/AddressProvider.json +0 -496
- package/src/abi/core/ContractsRegister.sol/ContractsRegister.dbg.json +0 -4
- package/src/abi/core/ContractsRegister.sol/ContractsRegister.json +0 -255
- package/src/abi/credit/LeverageActions.sol/LeveragedActions.dbg.json +0 -4
- package/src/abi/credit/LeverageActions.sol/LeveragedActions.json +0 -514
- package/src/abi/deployer/AdaptersDeployer.sol/AdaptersDeployer.dbg.json +0 -4
- package/src/abi/deployer/AdaptersDeployer.sol/AdaptersDeployer.json +0 -160
- package/src/abi/deployer/GenesisDeployer.sol/GenesisDeployer.dbg.json +0 -4
- package/src/abi/deployer/GenesisDeployer.sol/GenesisDeployer.json +0 -189
- package/src/abi/deployer/PoolDeployer.sol/PoolDeployer.dbg.json +0 -4
- package/src/abi/deployer/PoolDeployer.sol/PoolDeployer.json +0 -215
- package/src/abi/fuzzing/FuzzHarness.sol/FuzzHarness.dbg.json +0 -4
- package/src/abi/fuzzing/FuzzHarness.sol/FuzzHarness.json +0 -50
- package/src/abi/integrations/yearn/IYVault.sol/IYVault.dbg.json +0 -4
- package/src/abi/integrations/yearn/IYVault.sol/IYVault.json +0 -400
- package/src/abi/interfaces/IGearToken.sol/IGearToken.dbg.json +0 -4
- package/src/abi/interfaces/IGearToken.sol/IGearToken.json +0 -331
- package/src/abi/interfaces/IMerkleDistributor.sol/IMerkleDistributor.dbg.json +0 -4
- package/src/abi/interfaces/IMerkleDistributor.sol/IMerkleDistributor.json +0 -98
- package/src/abi/mocks/core/ACLTraitTest.sol/ACLTraitTest.dbg.json +0 -4
- package/src/abi/mocks/core/ACLTraitTest.sol/ACLTraitTest.json +0 -96
- package/src/abi/mocks/credit/ExecutorMock.sol/ExecutorMock.dbg.json +0 -4
- package/src/abi/mocks/credit/ExecutorMock.sol/ExecutorMock.json +0 -61
- package/src/abi/mocks/integrations/CurveMock.sol/CurveMock.dbg.json +0 -4
- package/src/abi/mocks/integrations/CurveMock.sol/CurveMock.json +0 -168
- package/src/abi/mocks/integrations/YearnMock.sol/YearnMock.dbg.json +0 -4
- package/src/abi/mocks/integrations/YearnMock.sol/YearnMock.json +0 -556
- package/src/abi/mocks/oracles/ChainlinkPriceFeedMock.sol/ChainlinkPriceFeedMock.dbg.json +0 -4
- package/src/abi/mocks/oracles/ChainlinkPriceFeedMock.sol/ChainlinkPriceFeedMock.json +0 -151
- package/src/abi/mocks/pool/CreditManagerMockForPoolTest.sol/CreditManagerMockForPoolTest.dbg.json +0 -4
- package/src/abi/mocks/pool/CreditManagerMockForPoolTest.sol/CreditManagerMockForPoolTest.json +0 -89
- package/src/abi/mocks/tokens/ERC20Blocking.sol/ERC20BlockingMock.dbg.json +0 -4
- package/src/abi/mocks/tokens/ERC20Blocking.sol/ERC20BlockingMock.json +0 -387
- package/src/abi/mocks/tokens/ERC20Fee.sol/TokenFeeMock.dbg.json +0 -4
- package/src/abi/mocks/tokens/ERC20Fee.sol/TokenFeeMock.json +0 -385
- package/src/abi/oracles/YearnPriceFeed.sol/YearnPriceFeed.dbg.json +0 -4
- package/src/abi/oracles/YearnPriceFeed.sol/YearnPriceFeed.json +0 -321
- package/src/abi/support/PathFinder.sol/PathFinder.dbg.json +0 -4
- package/src/abi/support/PathFinder.sol/PathFinder.json +0 -189
- package/src/abi/tokens/GearNFT.sol/GearBeta.dbg.json +0 -4
- package/src/abi/tokens/GearNFT.sol/GearBeta.json +0 -485
- package/src/abi/tokens/TokenDistributor.sol/TokenDistributor.dbg.json +0 -4
- package/src/abi/tokens/TokenDistributor.sol/TokenDistributor.json +0 -439
- package/src/abi/tokens/Vesting.sol/StepVesting.dbg.json +0 -4
- package/src/abi/tokens/Vesting.sol/StepVesting.json +0 -254
- package/src/apy/convexAPY.ts +0 -201
- package/src/apy/curveAPY.ts +0 -68
- package/src/apy/index.ts +0 -8
- package/src/apy/lidoAPY.ts +0 -89
- package/src/apy/yearnAPY.ts +0 -66
- package/src/config.ts +0 -2
- package/src/contracts/adapters.ts +0 -18
- package/src/contracts/contracts.ts +0 -438
- package/src/contracts/contractsRegister.ts +0 -68
- package/src/contracts/protocols.ts +0 -40
- package/src/core/constants.ts +0 -51
- package/src/core/creditAccount.ts +0 -160
- package/src/core/creditManager.ts +0 -309
- package/src/core/creditOperation.ts +0 -9
- package/src/core/creditSession.ts +0 -87
- package/src/core/errors.ts +0 -71
- package/src/core/eventOrTx.ts +0 -97
- package/src/core/events.ts +0 -1259
- package/src/core/history.ts +0 -55
- package/src/core/multicall.ts +0 -6
- package/src/core/operations.ts +0 -41
- package/src/core/pool.ts +0 -81
- package/src/core/strategy.ts +0 -140
- package/src/core/tokenDistributor.ts +0 -14
- package/src/core/transactions.ts +0 -492
- package/src/index.ts +0 -64
- package/src/oracles/oracles.ts +0 -48
- package/src/oracles/priceFeeds.ts +0 -546
- package/src/pathfinder/contracts.ts +0 -19
- package/src/pathfinder/convexLP.ts +0 -37
- package/src/pathfinder/curveLP.ts +0 -75
- package/src/pathfinder/path.ts +0 -174
- package/src/pathfinder/priority.ts +0 -14
- package/src/pathfinder/trade.ts +0 -90
- package/src/pathfinder/tradeTypes.ts +0 -105
- package/src/pathfinder/yVault.ts +0 -90
- package/src/payload/creditAccount.ts +0 -7
- package/src/payload/creditManager.ts +0 -24
- package/src/payload/creditSession.ts +0 -24
- package/src/payload/graphPayload.ts +0 -10
- package/src/payload/pool.ts +0 -3
- package/src/payload/token.ts +0 -5
- package/src/strategies/convex.ts +0 -414
- package/src/strategies/creditFacade.ts +0 -119
- package/src/strategies/curve.ts +0 -478
- package/src/strategies/lido.ts +0 -88
- package/src/strategies/uniswapV2.ts +0 -109
- package/src/strategies/uniswapV3.ts +0 -127
- package/src/strategies/yearn.ts +0 -219
- package/src/tokens/connectors.ts +0 -8
- package/src/tokens/convex.ts +0 -358
- package/src/tokens/curveLP.ts +0 -191
- package/src/tokens/gear.ts +0 -58
- package/src/tokens/normal.ts +0 -812
- package/src/tokens/token.ts +0 -256
- package/src/tokens/tokenData.ts +0 -85
- package/src/tokens/tokenType.ts +0 -12
- package/src/tokens/yearn.ts +0 -146
- package/src/types/@chainlink/contracts/index.ts +0 -5
- package/src/types/@chainlink/contracts/src/index.ts +0 -5
- package/src/types/@chainlink/contracts/src/v0.8/index.ts +0 -5
- package/src/types/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.ts +0 -228
- package/src/types/@chainlink/contracts/src/v0.8/interfaces/index.ts +0 -4
- package/src/types/@chainlink/index.ts +0 -5
- package/src/types/@openzeppelin/contracts/access/Ownable.ts +0 -175
- package/src/types/@openzeppelin/contracts/access/index.ts +0 -4
- package/src/types/@openzeppelin/contracts/index.ts +0 -11
- package/src/types/@openzeppelin/contracts/security/Pausable.ts +0 -111
- package/src/types/@openzeppelin/contracts/security/index.ts +0 -4
- package/src/types/@openzeppelin/contracts/token/ERC20/ERC20.ts +0 -444
- package/src/types/@openzeppelin/contracts/token/ERC20/IERC20.ts +0 -322
- package/src/types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts +0 -364
- package/src/types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +0 -4
- package/src/types/@openzeppelin/contracts/token/ERC20/index.ts +0 -7
- package/src/types/@openzeppelin/contracts/token/ERC721/ERC721.ts +0 -578
- package/src/types/@openzeppelin/contracts/token/ERC721/IERC721.ts +0 -527
- package/src/types/@openzeppelin/contracts/token/ERC721/IERC721Receiver.ts +0 -120
- package/src/types/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.ts +0 -581
- package/src/types/@openzeppelin/contracts/token/ERC721/extensions/index.ts +0 -4
- package/src/types/@openzeppelin/contracts/token/ERC721/index.ts +0 -8
- package/src/types/@openzeppelin/contracts/token/index.ts +0 -7
- package/src/types/@openzeppelin/contracts/utils/index.ts +0 -5
- package/src/types/@openzeppelin/contracts/utils/introspection/ERC165.ts +0 -102
- package/src/types/@openzeppelin/contracts/utils/introspection/IERC165.ts +0 -102
- package/src/types/@openzeppelin/contracts/utils/introspection/index.ts +0 -5
- package/src/types/@openzeppelin/index.ts +0 -5
- package/src/types/common.ts +0 -44
- package/src/types/contracts/adapters/AbstractAdapter.ts +0 -174
- package/src/types/contracts/adapters/UniversalAdapter.ts +0 -258
- package/src/types/contracts/adapters/convex/ConvexV1_BaseRewardPool.sol/ConvexV1BaseRewardPoolAdapter.ts +0 -1079
- package/src/types/contracts/adapters/convex/ConvexV1_BaseRewardPool.sol/index.ts +0 -4
- package/src/types/contracts/adapters/convex/ConvexV1_Booster.sol/ConvexV1BoosterAdapter.ts +0 -676
- package/src/types/contracts/adapters/convex/ConvexV1_Booster.sol/index.ts +0 -4
- package/src/types/contracts/adapters/convex/ConvexV1_ClaimZap.sol/ConvexV1ClaimZapAdapter.ts +0 -290
- package/src/types/contracts/adapters/convex/ConvexV1_ClaimZap.sol/index.ts +0 -4
- package/src/types/contracts/adapters/convex/ConvexV1_StakedPositionToken.sol/ConvexStakedPositionToken.ts +0 -393
- package/src/types/contracts/adapters/convex/ConvexV1_StakedPositionToken.sol/index.ts +0 -4
- package/src/types/contracts/adapters/convex/index.ts +0 -11
- package/src/types/contracts/adapters/curve/CurveV1_2.sol/CurveV1Adapter2Assets.ts +0 -1679
- package/src/types/contracts/adapters/curve/CurveV1_2.sol/index.ts +0 -4
- package/src/types/contracts/adapters/curve/CurveV1_3.sol/CurveV1Adapter3Assets.ts +0 -1685
- package/src/types/contracts/adapters/curve/CurveV1_3.sol/index.ts +0 -4
- package/src/types/contracts/adapters/curve/CurveV1_4.sol/CurveV1Adapter4Assets.ts +0 -1694
- package/src/types/contracts/adapters/curve/CurveV1_4.sol/index.ts +0 -4
- package/src/types/contracts/adapters/curve/CurveV1_Base.sol/CurveV1AdapterBase.ts +0 -1394
- package/src/types/contracts/adapters/curve/CurveV1_Base.sol/index.ts +0 -4
- package/src/types/contracts/adapters/curve/CurveV1_DepositZap.sol/CurveV1AdapterDeposit.ts +0 -1394
- package/src/types/contracts/adapters/curve/CurveV1_DepositZap.sol/index.ts +0 -4
- package/src/types/contracts/adapters/curve/CurveV1_stETH.sol/CurveV1AdapterStETH.ts +0 -1679
- package/src/types/contracts/adapters/curve/CurveV1_stETH.sol/index.ts +0 -4
- package/src/types/contracts/adapters/curve/CurveV1_stETHGateway.sol/CurveV1StETHPoolGateway.ts +0 -1232
- package/src/types/contracts/adapters/curve/CurveV1_stETHGateway.sol/index.ts +0 -4
- package/src/types/contracts/adapters/curve/index.ts +0 -17
- package/src/types/contracts/adapters/index.ts +0 -15
- package/src/types/contracts/adapters/lido/LidoV1.sol/LidoV1Adapter.ts +0 -689
- package/src/types/contracts/adapters/lido/LidoV1.sol/index.ts +0 -4
- package/src/types/contracts/adapters/lido/LidoV1_WETHGateway.sol/LidoV1Gateway.ts +0 -400
- package/src/types/contracts/adapters/lido/LidoV1_WETHGateway.sol/index.ts +0 -4
- package/src/types/contracts/adapters/lido/index.ts +0 -7
- package/src/types/contracts/adapters/uniswap/UniswapV2.sol/UniswapV2Adapter.ts +0 -1575
- package/src/types/contracts/adapters/uniswap/UniswapV2.sol/index.ts +0 -4
- package/src/types/contracts/adapters/uniswap/UniswapV3.sol/UniswapV3Adapter.ts +0 -532
- package/src/types/contracts/adapters/uniswap/UniswapV3.sol/index.ts +0 -4
- package/src/types/contracts/adapters/uniswap/index.ts +0 -7
- package/src/types/contracts/adapters/yearn/YearnV2.sol/YearnV2Adapter.ts +0 -744
- package/src/types/contracts/adapters/yearn/YearnV2.sol/index.ts +0 -4
- package/src/types/contracts/adapters/yearn/index.ts +0 -5
- package/src/types/contracts/core/ACL.ts +0 -564
- package/src/types/contracts/core/ACLTrait.ts +0 -170
- package/src/types/contracts/core/AccountFactory.ts +0 -680
- package/src/types/contracts/core/AddressProvider.ts +0 -706
- package/src/types/contracts/core/ContractsRegister.ts +0 -456
- package/src/types/contracts/core/DataCompressor.ts +0 -625
- package/src/types/contracts/core/WETHGateway.ts +0 -263
- package/src/types/contracts/core/index.ts +0 -10
- package/src/types/contracts/credit/CreditAccount.ts +0 -406
- package/src/types/contracts/credit/CreditConfigurator.ts +0 -1297
- package/src/types/contracts/credit/CreditFacade.ts +0 -1654
- package/src/types/contracts/credit/CreditManager.ts +0 -1834
- package/src/types/contracts/credit/index.ts +0 -7
- package/src/types/contracts/factories/CreditManagerFactory.ts +0 -539
- package/src/types/contracts/factories/GenesisFactory.ts +0 -274
- package/src/types/contracts/factories/PoolFactory.ts +0 -350
- package/src/types/contracts/factories/index.ts +0 -6
- package/src/types/contracts/index.ts +0 -29
- package/src/types/contracts/integrations/convex/IBaseRewardPool.ts +0 -856
- package/src/types/contracts/integrations/convex/IBooster.ts +0 -407
- package/src/types/contracts/integrations/convex/IClaimZap.ts +0 -183
- package/src/types/contracts/integrations/convex/IConvexToken.ts +0 -407
- package/src/types/contracts/integrations/convex/IRewards.sol/IBasicRewards.ts +0 -225
- package/src/types/contracts/integrations/convex/IRewards.sol/IRewards.ts +0 -395
- package/src/types/contracts/integrations/convex/IRewards.sol/index.ts +0 -5
- package/src/types/contracts/integrations/convex/Interfaces.sol/ICrvDeposit.ts +0 -128
- package/src/types/contracts/integrations/convex/Interfaces.sol/ICurveGauge.ts +0 -242
- package/src/types/contracts/integrations/convex/Interfaces.sol/ICurveVoteEscrow.ts +0 -227
- package/src/types/contracts/integrations/convex/Interfaces.sol/IDeposit.ts +0 -371
- package/src/types/contracts/integrations/convex/Interfaces.sol/IFeeDistro.ts +0 -104
- package/src/types/contracts/integrations/convex/Interfaces.sol/IMinter.ts +0 -95
- package/src/types/contracts/integrations/convex/Interfaces.sol/IPools.ts +0 -290
- package/src/types/contracts/integrations/convex/Interfaces.sol/IRegistry.ts +0 -189
- package/src/types/contracts/integrations/convex/Interfaces.sol/IRewardFactory.ts +0 -310
- package/src/types/contracts/integrations/convex/Interfaces.sol/IRewards.ts +0 -395
- package/src/types/contracts/integrations/convex/Interfaces.sol/IStaker.ts +0 -652
- package/src/types/contracts/integrations/convex/Interfaces.sol/IStash.ts +0 -209
- package/src/types/contracts/integrations/convex/Interfaces.sol/IStashFactory.ts +0 -120
- package/src/types/contracts/integrations/convex/Interfaces.sol/ITokenFactory.ts +0 -104
- package/src/types/contracts/integrations/convex/Interfaces.sol/ITokenMinter.ts +0 -143
- package/src/types/contracts/integrations/convex/Interfaces.sol/IVestedEscrow.ts +0 -107
- package/src/types/contracts/integrations/convex/Interfaces.sol/IVoting.ts +0 -220
- package/src/types/contracts/integrations/convex/Interfaces.sol/IWalletChecker.ts +0 -84
- package/src/types/contracts/integrations/convex/Interfaces.sol/index.ts +0 -21
- package/src/types/contracts/integrations/convex/index.ts +0 -11
- package/src/types/contracts/integrations/curve/ICRVToken.ts +0 -422
- package/src/types/contracts/integrations/curve/ICurvePool.ts +0 -894
- package/src/types/contracts/integrations/curve/ICurvePoolStETH.ts +0 -772
- package/src/types/contracts/integrations/curve/ICurvePool_2.sol/ICurvePool2Assets.ts +0 -1179
- package/src/types/contracts/integrations/curve/ICurvePool_2.sol/index.ts +0 -4
- package/src/types/contracts/integrations/curve/ICurvePool_3.sol/ICurvePool3Assets.ts +0 -1185
- package/src/types/contracts/integrations/curve/ICurvePool_3.sol/index.ts +0 -4
- package/src/types/contracts/integrations/curve/ICurvePool_4.sol/ICurvePool4Assets.ts +0 -1194
- package/src/types/contracts/integrations/curve/ICurvePool_4.sol/index.ts +0 -4
- package/src/types/contracts/integrations/curve/ICurveRegistry.ts +0 -148
- package/src/types/contracts/integrations/curve/index.ts +0 -13
- package/src/types/contracts/integrations/index.ts +0 -13
- package/src/types/contracts/integrations/lido/ILidoOracle.ts +0 -115
- package/src/types/contracts/integrations/lido/IstETH.sol/IstETH.ts +0 -534
- package/src/types/contracts/integrations/lido/IstETH.sol/IstETHGetters.ts +0 -507
- package/src/types/contracts/integrations/lido/IstETH.sol/index.ts +0 -5
- package/src/types/contracts/integrations/lido/index.ts +0 -6
- package/src/types/contracts/integrations/uniswap/IQuoter.ts +0 -263
- package/src/types/contracts/integrations/uniswap/IUniswapV2Router01.ts +0 -1128
- package/src/types/contracts/integrations/uniswap/IUniswapV2Router02.ts +0 -1446
- package/src/types/contracts/integrations/uniswap/IUniswapV3.sol/ISwapRouter.ts +0 -318
- package/src/types/contracts/integrations/uniswap/IUniswapV3.sol/index.ts +0 -4
- package/src/types/contracts/integrations/uniswap/IUniswapV3SwapCallback.ts +0 -117
- package/src/types/contracts/integrations/uniswap/index.ts +0 -9
- package/src/types/contracts/integrations/yearn/IYVault.ts +0 -640
- package/src/types/contracts/integrations/yearn/index.ts +0 -4
- package/src/types/contracts/interfaces/IACL.sol/IACL.ts +0 -261
- package/src/types/contracts/interfaces/IACL.sol/IACLEvents.ts +0 -135
- package/src/types/contracts/interfaces/IACL.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/IAccountFactory.sol/IAccountFactory.ts +0 -396
- package/src/types/contracts/interfaces/IAccountFactory.sol/IAccountFactoryEvents.ts +0 -158
- package/src/types/contracts/interfaces/IAccountFactory.sol/IAccountFactoryGetters.ts +0 -198
- package/src/types/contracts/interfaces/IAccountFactory.sol/index.ts +0 -6
- package/src/types/contracts/interfaces/IAddressProvider.sol/IAddressProvider.ts +0 -290
- package/src/types/contracts/interfaces/IAddressProvider.sol/IAddressProviderEvents.ts +0 -79
- package/src/types/contracts/interfaces/IAddressProvider.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/IContractsRegister.sol/IContractsRegister.ts +0 -305
- package/src/types/contracts/interfaces/IContractsRegister.sol/IContractsRegisterEvents.ts +0 -89
- package/src/types/contracts/interfaces/IContractsRegister.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/ICreditAccount.sol/ICrediAccountExceptions.ts +0 -55
- package/src/types/contracts/interfaces/ICreditAccount.sol/ICreditAccount.ts +0 -406
- package/src/types/contracts/interfaces/ICreditAccount.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/ICreditConfigurator.sol/ICreditConfigurator.ts +0 -666
- package/src/types/contracts/interfaces/ICreditConfigurator.sol/ICreditConfiguratorEvents.ts +0 -384
- package/src/types/contracts/interfaces/ICreditConfigurator.sol/ICreditConfiguratorExceptions.ts +0 -56
- package/src/types/contracts/interfaces/ICreditConfigurator.sol/index.ts +0 -6
- package/src/types/contracts/interfaces/ICreditFacade.sol/ICreditFacade.ts +0 -1236
- package/src/types/contracts/interfaces/ICreditFacade.sol/ICreditFacadeEvents.ts +0 -358
- package/src/types/contracts/interfaces/ICreditFacade.sol/ICreditFacadeExceptions.ts +0 -55
- package/src/types/contracts/interfaces/ICreditFacade.sol/ICreditFacadeExtended.ts +0 -143
- package/src/types/contracts/interfaces/ICreditFacade.sol/index.ts +0 -7
- package/src/types/contracts/interfaces/ICreditManagerV2.sol/ICreditManagerV2.ts +0 -1534
- package/src/types/contracts/interfaces/ICreditManagerV2.sol/ICreditManagerV2Events.ts +0 -98
- package/src/types/contracts/interfaces/ICreditManagerV2.sol/ICreditManagerV2Exceptions.ts +0 -55
- package/src/types/contracts/interfaces/ICreditManagerV2.sol/index.ts +0 -6
- package/src/types/contracts/interfaces/IDataCompressor.sol/IDataCompressor.ts +0 -516
- package/src/types/contracts/interfaces/IDataCompressor.sol/IDataCompressorExceptions.ts +0 -55
- package/src/types/contracts/interfaces/IDataCompressor.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/IDegenNFT.sol/IDegenNFT.ts +0 -209
- package/src/types/contracts/interfaces/IDegenNFT.sol/IDegenNFTExceptions.ts +0 -55
- package/src/types/contracts/interfaces/IDegenNFT.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/IGearToken.ts +0 -560
- package/src/types/contracts/interfaces/IInterestRateModel.ts +0 -123
- package/src/types/contracts/interfaces/ILPPriceFeed.sol/ILPPriceFeed.ts +0 -379
- package/src/types/contracts/interfaces/ILPPriceFeed.sol/ILPPriceFeedEvents.ts +0 -80
- package/src/types/contracts/interfaces/ILPPriceFeed.sol/ILPPriceFeedExceptions.ts +0 -55
- package/src/types/contracts/interfaces/ILPPriceFeed.sol/index.ts +0 -6
- package/src/types/contracts/interfaces/IMerkleDistributor.ts +0 -200
- package/src/types/contracts/interfaces/IPhantomERC20.ts +0 -381
- package/src/types/contracts/interfaces/IPoolService.sol/IPoolService.ts +0 -901
- package/src/types/contracts/interfaces/IPoolService.sol/IPoolServiceEvents.ts +0 -277
- package/src/types/contracts/interfaces/IPoolService.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/IPriceFeedAddress.ts +0 -177
- package/src/types/contracts/interfaces/IPriceFeedType.ts +0 -108
- package/src/types/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2.ts +0 -387
- package/src/types/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2Events.ts +0 -79
- package/src/types/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2Exceptions.ts +0 -55
- package/src/types/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2Ext.ts +0 -429
- package/src/types/contracts/interfaces/IPriceOracle.sol/index.ts +0 -7
- package/src/types/contracts/interfaces/IVersion.ts +0 -81
- package/src/types/contracts/interfaces/IWETHGateway.ts +0 -201
- package/src/types/contracts/interfaces/V1/ICreditFilter.ts +0 -1288
- package/src/types/contracts/interfaces/V1/ICreditManager.ts +0 -1194
- package/src/types/contracts/interfaces/V1/IPriceOracle.sol/IPriceOracleV2.ts +0 -220
- package/src/types/contracts/interfaces/V1/IPriceOracle.sol/index.ts +0 -4
- package/src/types/contracts/interfaces/V1/index.ts +0 -7
- package/src/types/contracts/interfaces/adapters/IAdapter.sol/IAdapter.ts +0 -174
- package/src/types/contracts/interfaces/adapters/IAdapter.sol/IAdapterExceptions.ts +0 -55
- package/src/types/contracts/interfaces/adapters/IAdapter.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/adapters/IUniversalAdapter.sol/IUniversalAdapter.ts +0 -258
- package/src/types/contracts/interfaces/adapters/IUniversalAdapter.sol/IUniversalAdapterExceptions.ts +0 -55
- package/src/types/contracts/interfaces/adapters/IUniversalAdapter.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/adapters/convex/IConvexV1BaseRewardPoolAdapter.sol/IConvexV1BaseRewardPoolAdapter.ts +0 -1088
- package/src/types/contracts/interfaces/adapters/convex/IConvexV1BaseRewardPoolAdapter.sol/IConvexV1BaseRewardPoolAdapterErrors.ts +0 -56
- package/src/types/contracts/interfaces/adapters/convex/IConvexV1BaseRewardPoolAdapter.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/adapters/convex/IConvexV1BoosterAdapter.ts +0 -553
- package/src/types/contracts/interfaces/adapters/convex/index.ts +0 -6
- package/src/types/contracts/interfaces/adapters/curve/ICurveV1Adapter.sol/ICurveV1Adapter.ts +0 -1397
- package/src/types/contracts/interfaces/adapters/curve/ICurveV1Adapter.sol/ICurveV1AdapterExceptions.ts +0 -55
- package/src/types/contracts/interfaces/adapters/curve/ICurveV1Adapter.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/adapters/curve/index.ts +0 -5
- package/src/types/contracts/interfaces/adapters/index.ts +0 -15
- package/src/types/contracts/interfaces/adapters/lido/ILidoV1Adapter.sol/ILidoV1Adapter.ts +0 -486
- package/src/types/contracts/interfaces/adapters/lido/ILidoV1Adapter.sol/ILidoV1AdapterEvents.ts +0 -69
- package/src/types/contracts/interfaces/adapters/lido/ILidoV1Adapter.sol/ILidoV1AdapterExceptions.ts +0 -55
- package/src/types/contracts/interfaces/adapters/lido/ILidoV1Adapter.sol/index.ts +0 -6
- package/src/types/contracts/interfaces/adapters/lido/index.ts +0 -5
- package/src/types/contracts/interfaces/adapters/uniswap/IUniswapV2Adapter.ts +0 -1595
- package/src/types/contracts/interfaces/adapters/uniswap/IUniswapV3Adapter.sol/IUniswapV3Adapter.ts +0 -532
- package/src/types/contracts/interfaces/adapters/uniswap/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions.ts +0 -55
- package/src/types/contracts/interfaces/adapters/uniswap/IUniswapV3Adapter.sol/index.ts +0 -5
- package/src/types/contracts/interfaces/adapters/uniswap/index.ts +0 -6
- package/src/types/contracts/interfaces/external/IWETH.ts +0 -159
- package/src/types/contracts/interfaces/external/index.ts +0 -4
- package/src/types/contracts/interfaces/index.ts +0 -43
- package/src/types/contracts/libraries/Errors.ts +0 -894
- package/src/types/contracts/libraries/index.ts +0 -4
- package/src/types/contracts/oracles/LPPriceFeed.ts +0 -451
- package/src/types/contracts/oracles/PriceFeedChecker.ts +0 -55
- package/src/types/contracts/oracles/PriceOracle.ts +0 -535
- package/src/types/contracts/oracles/ZeroPriceFeed.ts +0 -244
- package/src/types/contracts/oracles/curve/AbstractCurveLPPriceFeed.ts +0 -485
- package/src/types/contracts/oracles/curve/CurveLP2PriceFeed.ts +0 -519
- package/src/types/contracts/oracles/curve/CurveLP3PriceFeed.ts +0 -536
- package/src/types/contracts/oracles/curve/CurveLP4PriceFeed.ts +0 -553
- package/src/types/contracts/oracles/curve/index.ts +0 -7
- package/src/types/contracts/oracles/index.ts +0 -11
- package/src/types/contracts/oracles/yearn/YearnPriceFeed.ts +0 -499
- package/src/types/contracts/oracles/yearn/index.ts +0 -4
- package/src/types/contracts/pathfinder/ConvexPathFinder.ts +0 -211
- package/src/types/contracts/pathfinder/CurveLPPathFinder.ts +0 -335
- package/src/types/contracts/pathfinder/CurvePathFinder.ts +0 -514
- package/src/types/contracts/pathfinder/ISwapper.ts +0 -208
- package/src/types/contracts/pathfinder/NormalTokenPathFinder.ts +0 -526
- package/src/types/contracts/pathfinder/SwapPathFinder.ts +0 -424
- package/src/types/contracts/pathfinder/UniswapV2PathFinder.ts +0 -422
- package/src/types/contracts/pathfinder/UniswapV3PathFinder.ts +0 -559
- package/src/types/contracts/pathfinder/YearnPathFinder.ts +0 -200
- package/src/types/contracts/pathfinder/data/Balances.sol/BalanceOps.ts +0 -55
- package/src/types/contracts/pathfinder/data/Balances.sol/index.ts +0 -4
- package/src/types/contracts/pathfinder/data/index.ts +0 -5
- package/src/types/contracts/pathfinder/index.ts +0 -14
- package/src/types/contracts/pool/LinearInterestRateModel.ts +0 -276
- package/src/types/contracts/pool/PoolService.ts +0 -1314
- package/src/types/contracts/pool/index.ts +0 -5
- package/src/types/contracts/support/ContractUpgrader.ts +0 -284
- package/src/types/contracts/support/MerkleDistributor.ts +0 -200
- package/src/types/contracts/support/MultiCall.sol/Multicall2.ts +0 -451
- package/src/types/contracts/support/MultiCall.sol/index.ts +0 -4
- package/src/types/contracts/support/PauseMulticall.ts +0 -286
- package/src/types/contracts/support/index.ts +0 -8
- package/src/types/contracts/test/Playground.t.sol/PlaygroundTest.ts +0 -425
- package/src/types/contracts/test/Playground.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/AbstractAdapter.t.sol/AbstractAdapterTest.ts +0 -1196
- package/src/types/contracts/test/adapters/AbstractAdapter.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/AdapterTestHelper.ts +0 -814
- package/src/types/contracts/test/adapters/ConvexAdapterHelper.ts +0 -1351
- package/src/types/contracts/test/adapters/ConvexV1_BaseRewardPool.t.sol/ConvexV1AdapterBasePoolTest.ts +0 -1701
- package/src/types/contracts/test/adapters/ConvexV1_BaseRewardPool.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/ConvexV1_Booster.t.sol/ConvexV1AdapterBoosterTest.ts +0 -1583
- package/src/types/contracts/test/adapters/ConvexV1_Booster.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/ConvexV1_ClaimZap.t.sol/ConvexV1ClaimZapAdapterTest.ts +0 -1551
- package/src/types/contracts/test/adapters/ConvexV1_ClaimZap.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/CurveV1AdapterBaseMetapoolTest.t.sol/CurveV1AdapterBaseMetaPoolTest.ts +0 -1021
- package/src/types/contracts/test/adapters/CurveV1AdapterBaseMetapoolTest.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/CurveV1AdapterBaseTest.t.sol/CurveV1AdapterBaseTest.ts +0 -1325
- package/src/types/contracts/test/adapters/CurveV1AdapterBaseTest.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/CurveV1AdapterHelper.ts +0 -814
- package/src/types/contracts/test/adapters/CurveV1Adapter_2AssetsTest.t.sol/CurveV1Adapter2AssetsTest.ts +0 -1080
- package/src/types/contracts/test/adapters/CurveV1Adapter_2AssetsTest.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/CurveV1Adapter_3AssetsTest.t.sol/CurveV1Adapter3AssetsTest.ts +0 -1080
- package/src/types/contracts/test/adapters/CurveV1Adapter_3AssetsTest.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/CurveV1Adapter_4AssetsTest.t.sol/CurveV1Adapter4AssetsTest.ts +0 -1110
- package/src/types/contracts/test/adapters/CurveV1Adapter_4AssetsTest.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/CurveV1StETHTest.t.sol/CurveV1StEthAdapterTest.ts +0 -1100
- package/src/types/contracts/test/adapters/CurveV1StETHTest.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/LidoV1Adapter.t.sol/LidoV1AdapterTest.ts +0 -1146
- package/src/types/contracts/test/adapters/LidoV1Adapter.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/UniswapV2Adapter.t.sol/UniswapV2AdapterTest.ts +0 -1210
- package/src/types/contracts/test/adapters/UniswapV2Adapter.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/UniswapV3Adapter.t.sol/UniswapV3AdapterTest.ts +0 -1124
- package/src/types/contracts/test/adapters/UniswapV3Adapter.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/YearnV2Adapter.t.sol/YearnV2AdapterTest.ts +0 -1408
- package/src/types/contracts/test/adapters/YearnV2Adapter.t.sol/index.ts +0 -4
- package/src/types/contracts/test/adapters/index.ts +0 -34
- package/src/types/contracts/test/core/ACL.t.sol/ACLTest.ts +0 -659
- package/src/types/contracts/test/core/ACL.t.sol/index.ts +0 -4
- package/src/types/contracts/test/core/AddressProvider.t.sol/AddressProviderTest.ts +0 -783
- package/src/types/contracts/test/core/AddressProvider.t.sol/index.ts +0 -4
- package/src/types/contracts/test/core/index.ts +0 -7
- package/src/types/contracts/test/credit/CreditConfigurator.t.sol/CreditConfiguratorTest.ts +0 -1958
- package/src/types/contracts/test/credit/CreditConfigurator.t.sol/index.ts +0 -4
- package/src/types/contracts/test/credit/CreditFacade.t.sol/CreditFacadeTest.ts +0 -2860
- package/src/types/contracts/test/credit/CreditFacade.t.sol/index.ts +0 -4
- package/src/types/contracts/test/credit/CreditManager.t.sol/CreditManagerTest.ts +0 -2480
- package/src/types/contracts/test/credit/CreditManager.t.sol/index.ts +0 -4
- package/src/types/contracts/test/credit/index.ts +0 -9
- package/src/types/contracts/test/index.ts +0 -31
- package/src/types/contracts/test/lib/cheatCodes.sol/CheatCodes.ts +0 -926
- package/src/types/contracts/test/lib/cheatCodes.sol/index.ts +0 -4
- package/src/types/contracts/test/lib/constants.sol/Roles.ts +0 -375
- package/src/types/contracts/test/lib/constants.sol/index.ts +0 -4
- package/src/types/contracts/test/lib/index.ts +0 -9
- package/src/types/contracts/test/lib/test.sol/DSTest.ts +0 -375
- package/src/types/contracts/test/lib/test.sol/index.ts +0 -4
- package/src/types/contracts/test/mainnet/MainnetTokens.sol/MainnetTokensTestSuite.ts +0 -346
- package/src/types/contracts/test/mainnet/MainnetTokens.sol/index.ts +0 -4
- package/src/types/contracts/test/mainnet/TotalValueCalculator.ts +0 -104
- package/src/types/contracts/test/mainnet/index.ts +0 -6
- package/src/types/contracts/test/mocks/adapters/AdapterMock.ts +0 -458
- package/src/types/contracts/test/mocks/adapters/TargetContractMock.ts +0 -81
- package/src/types/contracts/test/mocks/adapters/index.ts +0 -5
- package/src/types/contracts/test/mocks/core/ACLTraitTest.ts +0 -238
- package/src/types/contracts/test/mocks/core/AddressProviderACLMock.ts +0 -186
- package/src/types/contracts/test/mocks/core/index.ts +0 -5
- package/src/types/contracts/test/mocks/credit/CreditManagerInternal.ts +0 -2197
- package/src/types/contracts/test/mocks/credit/index.ts +0 -4
- package/src/types/contracts/test/mocks/dao/TreasuryMock.ts +0 -69
- package/src/types/contracts/test/mocks/dao/index.ts +0 -4
- package/src/types/contracts/test/mocks/index.ts +0 -21
- package/src/types/contracts/test/mocks/integrations/ConvexBaseRewardPoolMock.sol/BaseRewardPoolMock.ts +0 -1069
- package/src/types/contracts/test/mocks/integrations/ConvexBaseRewardPoolMock.sol/IBaseRewardPoolMockEvents.ts +0 -140
- package/src/types/contracts/test/mocks/integrations/ConvexBaseRewardPoolMock.sol/index.ts +0 -5
- package/src/types/contracts/test/mocks/integrations/ConvexBoosterMock.sol/BoosterMock.ts +0 -1002
- package/src/types/contracts/test/mocks/integrations/ConvexBoosterMock.sol/IBoosterMockEvents.ts +0 -122
- package/src/types/contracts/test/mocks/integrations/ConvexBoosterMock.sol/index.ts +0 -5
- package/src/types/contracts/test/mocks/integrations/ConvexClaimZapMock.sol/ClaimZapMock.ts +0 -209
- package/src/types/contracts/test/mocks/integrations/ConvexClaimZapMock.sol/IBasicRewards.ts +0 -225
- package/src/types/contracts/test/mocks/integrations/ConvexClaimZapMock.sol/index.ts +0 -5
- package/src/types/contracts/test/mocks/integrations/ConvexExtraRewardPoolMock.sol/ExtraRewardPoolMock.ts +0 -731
- package/src/types/contracts/test/mocks/integrations/ConvexExtraRewardPoolMock.sol/IExtraRewardPoolMockEvents.ts +0 -141
- package/src/types/contracts/test/mocks/integrations/ConvexExtraRewardPoolMock.sol/VirtualBalanceWrapper.ts +0 -203
- package/src/types/contracts/test/mocks/integrations/ConvexExtraRewardPoolMock.sol/index.ts +0 -6
- package/src/types/contracts/test/mocks/integrations/ConvexTokenRewardContractMock.sol/TokenRewardContractMock.ts +0 -425
- package/src/types/contracts/test/mocks/integrations/ConvexTokenRewardContractMock.sol/index.ts +0 -4
- package/src/types/contracts/test/mocks/integrations/CurveV1MetapoolMock.ts +0 -1101
- package/src/types/contracts/test/mocks/integrations/CurveV1Mock.ts +0 -1124
- package/src/types/contracts/test/mocks/integrations/CurveV1Mock_2Assets.ts +0 -1409
- package/src/types/contracts/test/mocks/integrations/CurveV1Mock_3Assets.ts +0 -1415
- package/src/types/contracts/test/mocks/integrations/CurveV1Mock_4Assets.ts +0 -1424
- package/src/types/contracts/test/mocks/integrations/CurveV1StETHMock.ts +0 -880
- package/src/types/contracts/test/mocks/integrations/LidoMock.sol/ILidoMockEvents.ts +0 -82
- package/src/types/contracts/test/mocks/integrations/LidoMock.sol/LidoMock.ts +0 -747
- package/src/types/contracts/test/mocks/integrations/LidoMock.sol/index.ts +0 -5
- package/src/types/contracts/test/mocks/integrations/UniswapV2Mock.ts +0 -1553
- package/src/types/contracts/test/mocks/integrations/UniswapV3Mock.ts +0 -953
- package/src/types/contracts/test/mocks/integrations/YearnV2Mock.ts +0 -898
- package/src/types/contracts/test/mocks/integrations/index.ts +0 -24
- package/src/types/contracts/test/mocks/libraries/PercentageMathTest.ts +0 -143
- package/src/types/contracts/test/mocks/libraries/WadRayMathTest.ts +0 -315
- package/src/types/contracts/test/mocks/libraries/index.ts +0 -5
- package/src/types/contracts/test/mocks/oracles/LPPriceFeedMock.ts +0 -486
- package/src/types/contracts/test/mocks/oracles/PriceFeedMock.ts +0 -368
- package/src/types/contracts/test/mocks/oracles/index.ts +0 -5
- package/src/types/contracts/test/mocks/pool/CreditManagerMockForPoolTest.ts +0 -285
- package/src/types/contracts/test/mocks/pool/PoolServiceMock.ts +0 -1401
- package/src/types/contracts/test/mocks/pool/TestPoolService.ts +0 -1439
- package/src/types/contracts/test/mocks/pool/index.ts +0 -6
- package/src/types/contracts/test/mocks/token/CERC20Mock.ts +0 -635
- package/src/types/contracts/test/mocks/token/ERC20ApproveRestricted.sol/ERC20ApproveRestrictedFalse.ts +0 -544
- package/src/types/contracts/test/mocks/token/ERC20ApproveRestricted.sol/ERC20ApproveRestrictedRevert.ts +0 -544
- package/src/types/contracts/test/mocks/token/ERC20ApproveRestricted.sol/index.ts +0 -5
- package/src/types/contracts/test/mocks/token/ERC20Blocking.sol/ERC20BlockingMock.ts +0 -620
- package/src/types/contracts/test/mocks/token/ERC20Blocking.sol/index.ts +0 -4
- package/src/types/contracts/test/mocks/token/ERC20Fee.sol/TokenFeeMock.ts +0 -595
- package/src/types/contracts/test/mocks/token/ERC20Fee.sol/index.ts +0 -4
- package/src/types/contracts/test/mocks/token/ERC20Mock.ts +0 -695
- package/src/types/contracts/test/mocks/token/ERC20NonCompliant.sol/NonCompliantERC20.ts +0 -105
- package/src/types/contracts/test/mocks/token/ERC20NonCompliant.sol/index.ts +0 -4
- package/src/types/contracts/test/mocks/token/ERC721ReceiverMock.sol/ERC721ReceiverMock.ts +0 -118
- package/src/types/contracts/test/mocks/token/ERC721ReceiverMock.sol/IERC721Receiver.ts +0 -120
- package/src/types/contracts/test/mocks/token/ERC721ReceiverMock.sol/index.ts +0 -5
- package/src/types/contracts/test/mocks/token/StETHMock.ts +0 -618
- package/src/types/contracts/test/mocks/token/WETHMock.ts +0 -488
- package/src/types/contracts/test/mocks/token/index.ts +0 -17
- package/src/types/contracts/test/oracles/CurveLPPriceFeed.t.sol/CurveLPPriceFeedTest.ts +0 -749
- package/src/types/contracts/test/oracles/CurveLPPriceFeed.t.sol/index.ts +0 -4
- package/src/types/contracts/test/oracles/LPPriceFeed.t.sol/LPPriceFeedTest.ts +0 -617
- package/src/types/contracts/test/oracles/LPPriceFeed.t.sol/index.ts +0 -4
- package/src/types/contracts/test/oracles/PriceOracle.t.sol/PriceOracleTest.ts +0 -758
- package/src/types/contracts/test/oracles/PriceOracle.t.sol/index.ts +0 -4
- package/src/types/contracts/test/oracles/YearnPriceFeed.t.sol/YearnFeedTest.ts +0 -595
- package/src/types/contracts/test/oracles/YearnPriceFeed.t.sol/index.ts +0 -4
- package/src/types/contracts/test/oracles/ZeroPriceFeed.t.sol/ZeroFeedTest.ts +0 -503
- package/src/types/contracts/test/oracles/ZeroPriceFeed.t.sol/index.ts +0 -4
- package/src/types/contracts/test/oracles/index.ts +0 -13
- package/src/types/contracts/test/pathfinder/CurveLPPathFinder.t.sol/CurveLPPathFinderTest.ts +0 -897
- package/src/types/contracts/test/pathfinder/CurveLPPathFinder.t.sol/index.ts +0 -4
- package/src/types/contracts/test/pathfinder/CurvePathFinder.t.sol/CurvePathFinderTest.ts +0 -1058
- package/src/types/contracts/test/pathfinder/CurvePathFinder.t.sol/index.ts +0 -4
- package/src/types/contracts/test/pathfinder/NormalTokenPathFinder.t.sol/NormalTokenPathFinderTest.ts +0 -1243
- package/src/types/contracts/test/pathfinder/NormalTokenPathFinder.t.sol/index.ts +0 -4
- package/src/types/contracts/test/pathfinder/PathFinderTestHelper.ts +0 -815
- package/src/types/contracts/test/pathfinder/SwapPathFinder.t.sol/SwapPathFinderTest.ts +0 -1328
- package/src/types/contracts/test/pathfinder/SwapPathFinder.t.sol/index.ts +0 -4
- package/src/types/contracts/test/pathfinder/UniswapV2PathFinder.t.sol/UniswapV2PathFinderTest.ts +0 -1108
- package/src/types/contracts/test/pathfinder/UniswapV2PathFinder.t.sol/index.ts +0 -4
- package/src/types/contracts/test/pathfinder/UniswapV3PathFinder.t.sol/UniswapV3PathFinderTest.ts +0 -1142
- package/src/types/contracts/test/pathfinder/UniswapV3PathFinder.t.sol/index.ts +0 -4
- package/src/types/contracts/test/pathfinder/YearnPathFinder.t.sol/YearnPathFinderTest.ts +0 -927
- package/src/types/contracts/test/pathfinder/YearnPathFinder.t.sol/index.ts +0 -4
- package/src/types/contracts/test/pathfinder/index.ts +0 -18
- package/src/types/contracts/test/pool/PoolService.t.sol/PoolServiceTest.ts +0 -1671
- package/src/types/contracts/test/pool/PoolService.t.sol/index.ts +0 -4
- package/src/types/contracts/test/pool/index.ts +0 -5
- package/src/types/contracts/test/sigp/AttackingContractNonPayable.sol/AttackContractNonPayable.ts +0 -81
- package/src/types/contracts/test/sigp/AttackingContractNonPayable.sol/index.ts +0 -4
- package/src/types/contracts/test/sigp/DummyMulticallTarget.ts +0 -175
- package/src/types/contracts/test/sigp/FlashLoanAttacker2.ts +0 -240
- package/src/types/contracts/test/sigp/Interfaces.sol/ICrvDeposit.ts +0 -128
- package/src/types/contracts/test/sigp/Interfaces.sol/ICurveGauge.ts +0 -242
- package/src/types/contracts/test/sigp/Interfaces.sol/ICurveVoteEscrow.ts +0 -227
- package/src/types/contracts/test/sigp/Interfaces.sol/IDeposit.ts +0 -371
- package/src/types/contracts/test/sigp/Interfaces.sol/IFeeDistro.ts +0 -104
- package/src/types/contracts/test/sigp/Interfaces.sol/IMinter.ts +0 -95
- package/src/types/contracts/test/sigp/Interfaces.sol/IPools.ts +0 -290
- package/src/types/contracts/test/sigp/Interfaces.sol/IRegistry.ts +0 -189
- package/src/types/contracts/test/sigp/Interfaces.sol/IRewardFactory.ts +0 -310
- package/src/types/contracts/test/sigp/Interfaces.sol/IRewards.ts +0 -395
- package/src/types/contracts/test/sigp/Interfaces.sol/IStaker.ts +0 -652
- package/src/types/contracts/test/sigp/Interfaces.sol/IStash.ts +0 -209
- package/src/types/contracts/test/sigp/Interfaces.sol/IStashFactory.ts +0 -120
- package/src/types/contracts/test/sigp/Interfaces.sol/ITokenFactory.ts +0 -104
- package/src/types/contracts/test/sigp/Interfaces.sol/ITokenMinter.ts +0 -143
- package/src/types/contracts/test/sigp/Interfaces.sol/IVestedEscrow.ts +0 -107
- package/src/types/contracts/test/sigp/Interfaces.sol/IVoting.ts +0 -220
- package/src/types/contracts/test/sigp/Interfaces.sol/IWalletChecker.ts +0 -84
- package/src/types/contracts/test/sigp/Interfaces.sol/index.ts +0 -21
- package/src/types/contracts/test/sigp/NewConvexBaseRewardPoolMock.sol/NewBaseRewardPoolMock.ts +0 -1069
- package/src/types/contracts/test/sigp/NewConvexBaseRewardPoolMock.sol/index.ts +0 -4
- package/src/types/contracts/test/sigp/NewConvexBoosterMock.sol/NewBoosterMock.ts +0 -1002
- package/src/types/contracts/test/sigp/NewConvexBoosterMock.sol/index.ts +0 -4
- package/src/types/contracts/test/sigp/NewCreditConfigurator.ts +0 -1262
- package/src/types/contracts/test/sigp/UniswapHelper.sol/UniswapV3AdapterTestHelper.ts +0 -326
- package/src/types/contracts/test/sigp/UniswapHelper.sol/index.ts +0 -4
- package/src/types/contracts/test/sigp/index.ts +0 -20
- package/src/types/contracts/test/sigp/interfaces/ILockedCvx.ts +0 -832
- package/src/types/contracts/test/sigp/interfaces/index.ts +0 -4
- package/src/types/contracts/test/sigp/stETHMock.sol/StETHMockERC20.ts +0 -725
- package/src/types/contracts/test/sigp/stETHMock.sol/index.ts +0 -4
- package/src/types/contracts/test/suites/BalanceHelper.ts +0 -375
- package/src/types/contracts/test/suites/BaseCreditTestSuite.ts +0 -649
- package/src/types/contracts/test/suites/CreditFacadeHelper.ts +0 -472
- package/src/types/contracts/test/suites/CreditFacadeTestSuite.ts +0 -821
- package/src/types/contracts/test/suites/CreditManagerTestSuite.ts +0 -748
- package/src/types/contracts/test/suites/PoolServiceTestSuite.ts +0 -209
- package/src/types/contracts/test/suites/TokensTestSuite.ts +0 -980
- package/src/types/contracts/test/suites/index.ts +0 -10
- package/src/types/contracts/test/support/PauseMulticall.t.sol/PauseMulticallTest.ts +0 -551
- package/src/types/contracts/test/support/PauseMulticall.t.sol/index.ts +0 -4
- package/src/types/contracts/test/support/index.ts +0 -5
- package/src/types/contracts/test/tokens/DegenNFT.t.sol/DegenNFTTest.ts +0 -970
- package/src/types/contracts/test/tokens/DegenNFT.t.sol/index.ts +0 -4
- package/src/types/contracts/test/tokens/index.ts +0 -5
- package/src/types/contracts/tokens/DegenNFT.ts +0 -967
- package/src/types/contracts/tokens/DieselToken.ts +0 -618
- package/src/types/contracts/tokens/GearToken.ts +0 -994
- package/src/types/contracts/tokens/PhantomERC20.ts +0 -379
- package/src/types/contracts/tokens/index.ts +0 -7
- package/src/types/factories/@chainlink/contracts/index.ts +0 -4
- package/src/types/factories/@chainlink/contracts/src/index.ts +0 -4
- package/src/types/factories/@chainlink/contracts/src/v0.8/index.ts +0 -4
- package/src/types/factories/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface__factory.ts +0 -141
- package/src/types/factories/@chainlink/contracts/src/v0.8/interfaces/index.ts +0 -4
- package/src/types/factories/@chainlink/index.ts +0 -4
- package/src/types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +0 -78
- package/src/types/factories/@openzeppelin/contracts/access/index.ts +0 -4
- package/src/types/factories/@openzeppelin/contracts/index.ts +0 -7
- package/src/types/factories/@openzeppelin/contracts/security/Pausable__factory.ts +0 -65
- package/src/types/factories/@openzeppelin/contracts/security/index.ts +0 -4
- package/src/types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +0 -349
- package/src/types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +0 -206
- package/src/types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts +0 -248
- package/src/types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +0 -4
- package/src/types/factories/@openzeppelin/contracts/token/ERC20/index.ts +0 -6
- package/src/types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.ts +0 -409
- package/src/types/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.ts +0 -60
- package/src/types/factories/@openzeppelin/contracts/token/ERC721/IERC721__factory.ts +0 -311
- package/src/types/factories/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata__factory.ts +0 -356
- package/src/types/factories/@openzeppelin/contracts/token/ERC721/extensions/index.ts +0 -4
- package/src/types/factories/@openzeppelin/contracts/token/ERC721/index.ts +0 -7
- package/src/types/factories/@openzeppelin/contracts/token/index.ts +0 -5
- package/src/types/factories/@openzeppelin/contracts/utils/index.ts +0 -4
- package/src/types/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.ts +0 -42
- package/src/types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts +0 -45
- package/src/types/factories/@openzeppelin/contracts/utils/introspection/index.ts +0 -5
- package/src/types/factories/@openzeppelin/index.ts +0 -4
- package/src/types/factories/contracts/adapters/AbstractAdapter__factory.ts +0 -107
- package/src/types/factories/contracts/adapters/UniversalAdapter__factory.ts +0 -230
- package/src/types/factories/contracts/adapters/convex/ConvexV1_BaseRewardPool.sol/ConvexV1BaseRewardPoolAdapter__factory.ts +0 -806
- package/src/types/factories/contracts/adapters/convex/ConvexV1_BaseRewardPool.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/convex/ConvexV1_Booster.sol/ConvexV1BoosterAdapter__factory.ts +0 -533
- package/src/types/factories/contracts/adapters/convex/ConvexV1_Booster.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/convex/ConvexV1_ClaimZap.sol/ConvexV1ClaimZapAdapter__factory.ts +0 -254
- package/src/types/factories/contracts/adapters/convex/ConvexV1_ClaimZap.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/convex/ConvexV1_StakedPositionToken.sol/ConvexStakedPositionToken__factory.ts +0 -338
- package/src/types/factories/contracts/adapters/convex/ConvexV1_StakedPositionToken.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/convex/index.ts +0 -7
- package/src/types/factories/contracts/adapters/curve/CurveV1_2.sol/CurveV1Adapter2Assets__factory.ts +0 -1137
- package/src/types/factories/contracts/adapters/curve/CurveV1_2.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/curve/CurveV1_3.sol/CurveV1Adapter3Assets__factory.ts +0 -1137
- package/src/types/factories/contracts/adapters/curve/CurveV1_3.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/curve/CurveV1_4.sol/CurveV1Adapter4Assets__factory.ts +0 -1137
- package/src/types/factories/contracts/adapters/curve/CurveV1_4.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/curve/CurveV1_Base.sol/CurveV1AdapterBase__factory.ts +0 -1003
- package/src/types/factories/contracts/adapters/curve/CurveV1_Base.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/curve/CurveV1_DepositZap.sol/CurveV1AdapterDeposit__factory.ts +0 -998
- package/src/types/factories/contracts/adapters/curve/CurveV1_DepositZap.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/curve/CurveV1_stETH.sol/CurveV1AdapterStETH__factory.ts +0 -1124
- package/src/types/factories/contracts/adapters/curve/CurveV1_stETH.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/curve/CurveV1_stETHGateway.sol/CurveV1StETHPoolGateway__factory.ts +0 -855
- package/src/types/factories/contracts/adapters/curve/CurveV1_stETHGateway.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/curve/index.ts +0 -10
- package/src/types/factories/contracts/adapters/index.ts +0 -10
- package/src/types/factories/contracts/adapters/lido/LidoV1.sol/LidoV1Adapter__factory.ts +0 -558
- package/src/types/factories/contracts/adapters/lido/LidoV1.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/lido/LidoV1_WETHGateway.sol/LidoV1Gateway__factory.ts +0 -336
- package/src/types/factories/contracts/adapters/lido/LidoV1_WETHGateway.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/lido/index.ts +0 -5
- package/src/types/factories/contracts/adapters/uniswap/UniswapV2.sol/UniswapV2Adapter__factory.ts +0 -1152
- package/src/types/factories/contracts/adapters/uniswap/UniswapV2.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/uniswap/UniswapV3.sol/UniswapV3Adapter__factory.ts +0 -473
- package/src/types/factories/contracts/adapters/uniswap/UniswapV3.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/uniswap/index.ts +0 -5
- package/src/types/factories/contracts/adapters/yearn/YearnV2.sol/YearnV2Adapter__factory.ts +0 -556
- package/src/types/factories/contracts/adapters/yearn/YearnV2.sol/index.ts +0 -4
- package/src/types/factories/contracts/adapters/yearn/index.ts +0 -4
- package/src/types/factories/contracts/core/ACLTrait__factory.ts +0 -107
- package/src/types/factories/contracts/core/ACL__factory.ts +0 -320
- package/src/types/factories/contracts/core/AccountFactory__factory.ts +0 -479
- package/src/types/factories/contracts/core/AddressProvider__factory.ts +0 -404
- package/src/types/factories/contracts/core/ContractsRegister__factory.ts +0 -357
- package/src/types/factories/contracts/core/DataCompressor__factory.ts +0 -910
- package/src/types/factories/contracts/core/WETHGateway__factory.ts +0 -191
- package/src/types/factories/contracts/core/index.ts +0 -10
- package/src/types/factories/contracts/credit/CreditAccount__factory.ts +0 -263
- package/src/types/factories/contracts/credit/CreditConfigurator__factory.ts +0 -931
- package/src/types/factories/contracts/credit/CreditFacade__factory.ts +0 -1254
- package/src/types/factories/contracts/credit/CreditManager__factory.ts +0 -1180
- package/src/types/factories/contracts/credit/index.ts +0 -7
- package/src/types/factories/contracts/factories/CreditManagerFactory__factory.ts +0 -392
- package/src/types/factories/contracts/factories/GenesisFactory__factory.ts +0 -202
- package/src/types/factories/contracts/factories/PoolFactory__factory.ts +0 -248
- package/src/types/factories/contracts/factories/index.ts +0 -6
- package/src/types/factories/contracts/index.ts +0 -16
- package/src/types/factories/contracts/integrations/convex/IBaseRewardPool__factory.ts +0 -541
- package/src/types/factories/contracts/integrations/convex/IBooster__factory.ts +0 -277
- package/src/types/factories/contracts/integrations/convex/IClaimZap__factory.ts +0 -105
- package/src/types/factories/contracts/integrations/convex/IConvexToken__factory.ts +0 -274
- package/src/types/factories/contracts/integrations/convex/IRewards.sol/IBasicRewards__factory.ts +0 -93
- package/src/types/factories/contracts/integrations/convex/IRewards.sol/IRewards__factory.ts +0 -190
- package/src/types/factories/contracts/integrations/convex/IRewards.sol/index.ts +0 -5
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/ICrvDeposit__factory.ts +0 -57
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/ICurveGauge__factory.ts +0 -123
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/ICurveVoteEscrow__factory.ts +0 -90
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IDeposit__factory.ts +0 -230
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IFeeDistro__factory.ts +0 -46
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IMinter__factory.ts +0 -39
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IPools__factory.ts +0 -189
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IRegistry__factory.ts +0 -114
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IRewardFactory__factory.ts +0 -164
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IRewards__factory.ts +0 -190
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IStaker__factory.ts +0 -324
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IStashFactory__factory.ts +0 -60
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IStash__factory.ts +0 -95
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/ITokenFactory__factory.ts +0 -45
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/ITokenMinter__factory.ts +0 -62
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IVestedEscrow__factory.ts +0 -50
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IVoting__factory.ts +0 -131
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/IWalletChecker__factory.ts +0 -45
- package/src/types/factories/contracts/integrations/convex/Interfaces.sol/index.ts +0 -21
- package/src/types/factories/contracts/integrations/convex/index.ts +0 -9
- package/src/types/factories/contracts/integrations/curve/ICRVToken__factory.ts +0 -270
- package/src/types/factories/contracts/integrations/curve/ICurvePoolStETH__factory.ts +0 -478
- package/src/types/factories/contracts/integrations/curve/ICurvePool_2.sol/ICurvePool2Assets__factory.ts +0 -717
- package/src/types/factories/contracts/integrations/curve/ICurvePool_2.sol/index.ts +0 -4
- package/src/types/factories/contracts/integrations/curve/ICurvePool_3.sol/ICurvePool3Assets__factory.ts +0 -717
- package/src/types/factories/contracts/integrations/curve/ICurvePool_3.sol/index.ts +0 -4
- package/src/types/factories/contracts/integrations/curve/ICurvePool_4.sol/ICurvePool4Assets__factory.ts +0 -717
- package/src/types/factories/contracts/integrations/curve/ICurvePool_4.sol/index.ts +0 -4
- package/src/types/factories/contracts/integrations/curve/ICurvePool__factory.ts +0 -571
- package/src/types/factories/contracts/integrations/curve/ICurveRegistry__factory.ts +0 -83
- package/src/types/factories/contracts/integrations/curve/index.ts +0 -10
- package/src/types/factories/contracts/integrations/index.ts +0 -8
- package/src/types/factories/contracts/integrations/lido/ILidoOracle__factory.ts +0 -49
- package/src/types/factories/contracts/integrations/lido/IstETH.sol/IstETHGetters__factory.ts +0 -344
- package/src/types/factories/contracts/integrations/lido/IstETH.sol/IstETH__factory.ts +0 -360
- package/src/types/factories/contracts/integrations/lido/IstETH.sol/index.ts +0 -5
- package/src/types/factories/contracts/integrations/lido/index.ts +0 -5
- package/src/types/factories/contracts/integrations/uniswap/IQuoter__factory.ts +0 -152
- package/src/types/factories/contracts/integrations/uniswap/IUniswapV2Router01__factory.ts +0 -775
- package/src/types/factories/contracts/integrations/uniswap/IUniswapV2Router02__factory.ts +0 -977
- package/src/types/factories/contracts/integrations/uniswap/IUniswapV3.sol/ISwapRouter__factory.ts +0 -240
- package/src/types/factories/contracts/integrations/uniswap/IUniswapV3.sol/index.ts +0 -4
- package/src/types/factories/contracts/integrations/uniswap/IUniswapV3SwapCallback__factory.ts +0 -53
- package/src/types/factories/contracts/integrations/uniswap/index.ts +0 -8
- package/src/types/factories/contracts/integrations/yearn/IYVault__factory.ts +0 -415
- package/src/types/factories/contracts/integrations/yearn/index.ts +0 -4
- package/src/types/factories/contracts/interfaces/IACL.sol/IACLEvents__factory.ts +0 -78
- package/src/types/factories/contracts/interfaces/IACL.sol/IACL__factory.ts +0 -145
- package/src/types/factories/contracts/interfaces/IACL.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/IAccountFactory.sol/IAccountFactoryEvents__factory.ts +0 -107
- package/src/types/factories/contracts/interfaces/IAccountFactory.sol/IAccountFactoryGetters__factory.ts +0 -120
- package/src/types/factories/contracts/interfaces/IAccountFactory.sol/IAccountFactory__factory.ts +0 -243
- package/src/types/factories/contracts/interfaces/IAccountFactory.sol/index.ts +0 -6
- package/src/types/factories/contracts/interfaces/IAddressProvider.sol/IAddressProviderEvents__factory.ts +0 -49
- package/src/types/factories/contracts/interfaces/IAddressProvider.sol/IAddressProvider__factory.ts +0 -175
- package/src/types/factories/contracts/interfaces/IAddressProvider.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/IContractsRegister.sol/IContractsRegisterEvents__factory.ts +0 -56
- package/src/types/factories/contracts/interfaces/IContractsRegister.sol/IContractsRegister__factory.ts +0 -193
- package/src/types/factories/contracts/interfaces/IContractsRegister.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/ICreditAccount.sol/ICrediAccountExceptions__factory.ts +0 -40
- package/src/types/factories/contracts/interfaces/ICreditAccount.sol/ICreditAccount__factory.ts +0 -227
- package/src/types/factories/contracts/interfaces/ICreditAccount.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/ICreditConfigurator.sol/ICreditConfiguratorEvents__factory.ts +0 -293
- package/src/types/factories/contracts/interfaces/ICreditConfigurator.sol/ICreditConfiguratorExceptions__factory.ts +0 -90
- package/src/types/factories/contracts/interfaces/ICreditConfigurator.sol/ICreditConfigurator__factory.ts +0 -495
- package/src/types/factories/contracts/interfaces/ICreditConfigurator.sol/index.ts +0 -6
- package/src/types/factories/contracts/interfaces/ICreditFacade.sol/ICreditFacadeEvents__factory.ts +0 -302
- package/src/types/factories/contracts/interfaces/ICreditFacade.sol/ICreditFacadeExceptions__factory.ts +0 -176
- package/src/types/factories/contracts/interfaces/ICreditFacade.sol/ICreditFacadeExtended__factory.ts +0 -61
- package/src/types/factories/contracts/interfaces/ICreditFacade.sol/ICreditFacade__factory.ts +0 -972
- package/src/types/factories/contracts/interfaces/ICreditFacade.sol/index.ts +0 -7
- package/src/types/factories/contracts/interfaces/ICreditManagerV2.sol/ICreditManagerV2Events__factory.ts +0 -62
- package/src/types/factories/contracts/interfaces/ICreditManagerV2.sol/ICreditManagerV2Exceptions__factory.ts +0 -95
- package/src/types/factories/contracts/interfaces/ICreditManagerV2.sol/ICreditManagerV2__factory.ts +0 -928
- package/src/types/factories/contracts/interfaces/ICreditManagerV2.sol/index.ts +0 -6
- package/src/types/factories/contracts/interfaces/IDataCompressor.sol/IDataCompressorExceptions__factory.ts +0 -40
- package/src/types/factories/contracts/interfaces/IDataCompressor.sol/IDataCompressor__factory.ts +0 -790
- package/src/types/factories/contracts/interfaces/IDataCompressor.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/IDegenNFT.sol/IDegenNFTExceptions__factory.ts +0 -46
- package/src/types/factories/contracts/interfaces/IDegenNFT.sol/IDegenNFT__factory.ts +0 -134
- package/src/types/factories/contracts/interfaces/IDegenNFT.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/IGearToken__factory.ts +0 -346
- package/src/types/factories/contracts/interfaces/IInterestRateModel__factory.ts +0 -63
- package/src/types/factories/contracts/interfaces/ILPPriceFeed.sol/ILPPriceFeedEvents__factory.ts +0 -45
- package/src/types/factories/contracts/interfaces/ILPPriceFeed.sol/ILPPriceFeedExceptions__factory.ts +0 -40
- package/src/types/factories/contracts/interfaces/ILPPriceFeed.sol/ILPPriceFeed__factory.ts +0 -244
- package/src/types/factories/contracts/interfaces/ILPPriceFeed.sol/index.ts +0 -6
- package/src/types/factories/contracts/interfaces/IMerkleDistributor__factory.ts +0 -124
- package/src/types/factories/contracts/interfaces/IPhantomERC20__factory.ts +0 -261
- package/src/types/factories/contracts/interfaces/IPoolService.sol/IPoolServiceEvents__factory.ts +0 -222
- package/src/types/factories/contracts/interfaces/IPoolService.sol/IPoolService__factory.ts +0 -581
- package/src/types/factories/contracts/interfaces/IPoolService.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/IPriceFeedAddress__factory.ts +0 -104
- package/src/types/factories/contracts/interfaces/IPriceFeedType__factory.ts +0 -52
- package/src/types/factories/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2Events__factory.ts +0 -49
- package/src/types/factories/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.ts +0 -45
- package/src/types/factories/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2Ext__factory.ts +0 -274
- package/src/types/factories/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2__factory.ts +0 -256
- package/src/types/factories/contracts/interfaces/IPriceOracle.sol/index.ts +0 -7
- package/src/types/factories/contracts/interfaces/IVersion__factory.ts +0 -39
- package/src/types/factories/contracts/interfaces/IWETHGateway__factory.ts +0 -90
- package/src/types/factories/contracts/interfaces/V1/ICreditFilter__factory.ts +0 -704
- package/src/types/factories/contracts/interfaces/V1/ICreditManager__factory.ts +0 -773
- package/src/types/factories/contracts/interfaces/V1/IPriceOracle.sol/IPriceOracleV2__factory.ts +0 -116
- package/src/types/factories/contracts/interfaces/V1/IPriceOracle.sol/index.ts +0 -4
- package/src/types/factories/contracts/interfaces/V1/index.ts +0 -6
- package/src/types/factories/contracts/interfaces/adapters/IAdapter.sol/IAdapterExceptions__factory.ts +0 -37
- package/src/types/factories/contracts/interfaces/adapters/IAdapter.sol/IAdapter__factory.ts +0 -102
- package/src/types/factories/contracts/interfaces/adapters/IAdapter.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/adapters/IUniversalAdapter.sol/IUniversalAdapterExceptions__factory.ts +0 -46
- package/src/types/factories/contracts/interfaces/adapters/IUniversalAdapter.sol/IUniversalAdapter__factory.ts +0 -173
- package/src/types/factories/contracts/interfaces/adapters/IUniversalAdapter.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/adapters/convex/IConvexV1BaseRewardPoolAdapter.sol/IConvexV1BaseRewardPoolAdapterErrors__factory.ts +0 -43
- package/src/types/factories/contracts/interfaces/adapters/convex/IConvexV1BaseRewardPoolAdapter.sol/IConvexV1BaseRewardPoolAdapter__factory.ts +0 -723
- package/src/types/factories/contracts/interfaces/adapters/convex/IConvexV1BaseRewardPoolAdapter.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/adapters/convex/IConvexV1BoosterAdapter__factory.ts +0 -377
- package/src/types/factories/contracts/interfaces/adapters/convex/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/adapters/curve/ICurveV1Adapter.sol/ICurveV1AdapterExceptions__factory.ts +0 -35
- package/src/types/factories/contracts/interfaces/adapters/curve/ICurveV1Adapter.sol/ICurveV1Adapter__factory.ts +0 -900
- package/src/types/factories/contracts/interfaces/adapters/curve/ICurveV1Adapter.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/adapters/curve/index.ts +0 -4
- package/src/types/factories/contracts/interfaces/adapters/index.ts +0 -9
- package/src/types/factories/contracts/interfaces/adapters/lido/ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.ts +0 -43
- package/src/types/factories/contracts/interfaces/adapters/lido/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.ts +0 -35
- package/src/types/factories/contracts/interfaces/adapters/lido/ILidoV1Adapter.sol/ILidoV1Adapter__factory.ts +0 -324
- package/src/types/factories/contracts/interfaces/adapters/lido/ILidoV1Adapter.sol/index.ts +0 -6
- package/src/types/factories/contracts/interfaces/adapters/lido/index.ts +0 -4
- package/src/types/factories/contracts/interfaces/adapters/uniswap/IUniswapV2Adapter__factory.ts +0 -1082
- package/src/types/factories/contracts/interfaces/adapters/uniswap/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions__factory.ts +0 -35
- package/src/types/factories/contracts/interfaces/adapters/uniswap/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.ts +0 -408
- package/src/types/factories/contracts/interfaces/adapters/uniswap/IUniswapV3Adapter.sol/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/adapters/uniswap/index.ts +0 -5
- package/src/types/factories/contracts/interfaces/external/IWETH__factory.ts +0 -67
- package/src/types/factories/contracts/interfaces/external/index.ts +0 -4
- package/src/types/factories/contracts/interfaces/index.ts +0 -27
- package/src/types/factories/contracts/libraries/Errors__factory.ts +0 -488
- package/src/types/factories/contracts/libraries/index.ts +0 -4
- package/src/types/factories/contracts/oracles/LPPriceFeed__factory.ts +0 -350
- package/src/types/factories/contracts/oracles/PriceFeedChecker__factory.ts +0 -77
- package/src/types/factories/contracts/oracles/PriceOracle__factory.ts +0 -458
- package/src/types/factories/contracts/oracles/ZeroPriceFeed__factory.ts +0 -204
- package/src/types/factories/contracts/oracles/curve/AbstractCurveLPPriceFeed__factory.ts +0 -380
- package/src/types/factories/contracts/oracles/curve/CurveLP2PriceFeed__factory.ts +0 -493
- package/src/types/factories/contracts/oracles/curve/CurveLP3PriceFeed__factory.ts +0 -515
- package/src/types/factories/contracts/oracles/curve/CurveLP4PriceFeed__factory.ts +0 -537
- package/src/types/factories/contracts/oracles/curve/index.ts +0 -7
- package/src/types/factories/contracts/oracles/index.ts +0 -9
- package/src/types/factories/contracts/oracles/yearn/YearnPriceFeed__factory.ts +0 -462
- package/src/types/factories/contracts/oracles/yearn/index.ts +0 -4
- package/src/types/factories/contracts/pathfinder/ConvexPathFinder__factory.ts +0 -224
- package/src/types/factories/contracts/pathfinder/CurveLPPathFinder__factory.ts +0 -323
- package/src/types/factories/contracts/pathfinder/CurvePathFinder__factory.ts +0 -443
- package/src/types/factories/contracts/pathfinder/ISwapper__factory.ts +0 -226
- package/src/types/factories/contracts/pathfinder/NormalTokenPathFinder__factory.ts +0 -623
- package/src/types/factories/contracts/pathfinder/SwapPathFinder__factory.ts +0 -443
- package/src/types/factories/contracts/pathfinder/UniswapV2PathFinder__factory.ts +0 -395
- package/src/types/factories/contracts/pathfinder/UniswapV3PathFinder__factory.ts +0 -516
- package/src/types/factories/contracts/pathfinder/YearnPathFinder__factory.ts +0 -181
- package/src/types/factories/contracts/pathfinder/data/Balances.sol/BalanceOps__factory.ts +0 -73
- package/src/types/factories/contracts/pathfinder/data/Balances.sol/index.ts +0 -4
- package/src/types/factories/contracts/pathfinder/data/index.ts +0 -4
- package/src/types/factories/contracts/pathfinder/index.ts +0 -13
- package/src/types/factories/contracts/pool/LinearInterestRateModel__factory.ts +0 -249
- package/src/types/factories/contracts/pool/PoolService__factory.ts +0 -917
- package/src/types/factories/contracts/pool/index.ts +0 -5
- package/src/types/factories/contracts/support/ContractUpgrader__factory.ts +0 -130
- package/src/types/factories/contracts/support/MerkleDistributor__factory.ts +0 -191
- package/src/types/factories/contracts/support/MultiCall.sol/Multicall2__factory.ts +0 -373
- package/src/types/factories/contracts/support/MultiCall.sol/index.ts +0 -4
- package/src/types/factories/contracts/support/PauseMulticall__factory.ts +0 -206
- package/src/types/factories/contracts/support/index.ts +0 -7
- package/src/types/factories/contracts/test/Playground.t.sol/PlaygroundTest__factory.ts +0 -370
- package/src/types/factories/contracts/test/Playground.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/AbstractAdapter.t.sol/AbstractAdapterTest__factory.ts +0 -966
- package/src/types/factories/contracts/test/adapters/AbstractAdapter.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/AdapterTestHelper__factory.ts +0 -740
- package/src/types/factories/contracts/test/adapters/ConvexAdapterHelper__factory.ts +0 -1190
- package/src/types/factories/contracts/test/adapters/ConvexV1_BaseRewardPool.t.sol/ConvexV1AdapterBasePoolTest__factory.ts +0 -1280
- package/src/types/factories/contracts/test/adapters/ConvexV1_BaseRewardPool.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/ConvexV1_Booster.t.sol/ConvexV1AdapterBoosterTest__factory.ts +0 -1250
- package/src/types/factories/contracts/test/adapters/ConvexV1_Booster.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/ConvexV1_ClaimZap.t.sol/ConvexV1ClaimZapAdapterTest__factory.ts +0 -1245
- package/src/types/factories/contracts/test/adapters/ConvexV1_ClaimZap.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/CurveV1AdapterBaseMetapoolTest.t.sol/CurveV1AdapterBaseMetaPoolTest__factory.ts +0 -819
- package/src/types/factories/contracts/test/adapters/CurveV1AdapterBaseMetapoolTest.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/CurveV1AdapterBaseTest.t.sol/CurveV1AdapterBaseTest__factory.ts +0 -899
- package/src/types/factories/contracts/test/adapters/CurveV1AdapterBaseTest.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/CurveV1AdapterHelper__factory.ts +0 -749
- package/src/types/factories/contracts/test/adapters/CurveV1Adapter_2AssetsTest.t.sol/CurveV1Adapter2AssetsTest__factory.ts +0 -831
- package/src/types/factories/contracts/test/adapters/CurveV1Adapter_2AssetsTest.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/CurveV1Adapter_3AssetsTest.t.sol/CurveV1Adapter3AssetsTest__factory.ts +0 -831
- package/src/types/factories/contracts/test/adapters/CurveV1Adapter_3AssetsTest.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/CurveV1Adapter_4AssetsTest.t.sol/CurveV1Adapter4AssetsTest__factory.ts +0 -838
- package/src/types/factories/contracts/test/adapters/CurveV1Adapter_4AssetsTest.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/CurveV1StETHTest.t.sol/CurveV1StEthAdapterTest__factory.ts +0 -850
- package/src/types/factories/contracts/test/adapters/CurveV1StETHTest.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/LidoV1Adapter.t.sol/LidoV1AdapterTest__factory.ts +0 -884
- package/src/types/factories/contracts/test/adapters/LidoV1Adapter.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/UniswapV2Adapter.t.sol/UniswapV2AdapterTest__factory.ts +0 -913
- package/src/types/factories/contracts/test/adapters/UniswapV2Adapter.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/UniswapV3Adapter.t.sol/UniswapV3AdapterTest__factory.ts +0 -846
- package/src/types/factories/contracts/test/adapters/UniswapV3Adapter.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/YearnV2Adapter.t.sol/YearnV2AdapterTest__factory.ts +0 -918
- package/src/types/factories/contracts/test/adapters/YearnV2Adapter.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/adapters/index.ts +0 -20
- package/src/types/factories/contracts/test/core/ACL.t.sol/ACLTest__factory.ts +0 -457
- package/src/types/factories/contracts/test/core/ACL.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/core/AddressProvider.t.sol/AddressProviderTest__factory.ts +0 -466
- package/src/types/factories/contracts/test/core/AddressProvider.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/core/index.ts +0 -5
- package/src/types/factories/contracts/test/credit/CreditConfigurator.t.sol/CreditConfiguratorTest__factory.ts +0 -1048
- package/src/types/factories/contracts/test/credit/CreditConfigurator.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/credit/CreditFacade.t.sol/CreditFacadeTest__factory.ts +0 -1368
- package/src/types/factories/contracts/test/credit/CreditFacade.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/credit/CreditManager.t.sol/CreditManagerTest__factory.ts +0 -1003
- package/src/types/factories/contracts/test/credit/CreditManager.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/credit/index.ts +0 -6
- package/src/types/factories/contracts/test/index.ts +0 -17
- package/src/types/factories/contracts/test/lib/cheatCodes.sol/CheatCodes__factory.ts +0 -472
- package/src/types/factories/contracts/test/lib/cheatCodes.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/lib/constants.sol/Roles__factory.ts +0 -358
- package/src/types/factories/contracts/test/lib/constants.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/lib/index.ts +0 -6
- package/src/types/factories/contracts/test/lib/test.sol/DSTest__factory.ts +0 -353
- package/src/types/factories/contracts/test/lib/test.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/mainnet/MainnetTokens.sol/MainnetTokensTestSuite__factory.ts +0 -237
- package/src/types/factories/contracts/test/mainnet/MainnetTokens.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/mainnet/TotalValueCalculator__factory.ts +0 -95
- package/src/types/factories/contracts/test/mainnet/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/adapters/AdapterMock__factory.ts +0 -373
- package/src/types/factories/contracts/test/mocks/adapters/TargetContractMock__factory.ts +0 -84
- package/src/types/factories/contracts/test/mocks/adapters/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/core/ACLTraitTest__factory.ts +0 -185
- package/src/types/factories/contracts/test/mocks/core/AddressProviderACLMock__factory.ts +0 -153
- package/src/types/factories/contracts/test/mocks/core/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/credit/CreditManagerInternal__factory.ts +0 -1395
- package/src/types/factories/contracts/test/mocks/credit/index.ts +0 -4
- package/src/types/factories/contracts/test/mocks/dao/TreasuryMock__factory.ts +0 -79
- package/src/types/factories/contracts/test/mocks/dao/index.ts +0 -4
- package/src/types/factories/contracts/test/mocks/index.ts +0 -12
- package/src/types/factories/contracts/test/mocks/integrations/ConvexBaseRewardPoolMock.sol/BaseRewardPoolMock__factory.ts +0 -763
- package/src/types/factories/contracts/test/mocks/integrations/ConvexBaseRewardPoolMock.sol/IBaseRewardPoolMockEvents__factory.ts +0 -105
- package/src/types/factories/contracts/test/mocks/integrations/ConvexBaseRewardPoolMock.sol/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/integrations/ConvexBoosterMock.sol/BoosterMock__factory.ts +0 -776
- package/src/types/factories/contracts/test/mocks/integrations/ConvexBoosterMock.sol/IBoosterMockEvents__factory.ts +0 -94
- package/src/types/factories/contracts/test/mocks/integrations/ConvexBoosterMock.sol/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/integrations/ConvexClaimZapMock.sol/ClaimZapMock__factory.ts +0 -187
- package/src/types/factories/contracts/test/mocks/integrations/ConvexClaimZapMock.sol/IBasicRewards__factory.ts +0 -93
- package/src/types/factories/contracts/test/mocks/integrations/ConvexClaimZapMock.sol/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/integrations/ConvexExtraRewardPoolMock.sol/ExtraRewardPoolMock__factory.ts +0 -558
- package/src/types/factories/contracts/test/mocks/integrations/ConvexExtraRewardPoolMock.sol/IExtraRewardPoolMockEvents__factory.ts +0 -105
- package/src/types/factories/contracts/test/mocks/integrations/ConvexExtraRewardPoolMock.sol/VirtualBalanceWrapper__factory.ts +0 -186
- package/src/types/factories/contracts/test/mocks/integrations/ConvexExtraRewardPoolMock.sol/index.ts +0 -6
- package/src/types/factories/contracts/test/mocks/integrations/ConvexTokenRewardContractMock.sol/TokenRewardContractMock__factory.ts +0 -345
- package/src/types/factories/contracts/test/mocks/integrations/ConvexTokenRewardContractMock.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/mocks/integrations/CurveV1MetapoolMock__factory.ts +0 -747
- package/src/types/factories/contracts/test/mocks/integrations/CurveV1Mock_2Assets__factory.ts +0 -902
- package/src/types/factories/contracts/test/mocks/integrations/CurveV1Mock_3Assets__factory.ts +0 -902
- package/src/types/factories/contracts/test/mocks/integrations/CurveV1Mock_4Assets__factory.ts +0 -902
- package/src/types/factories/contracts/test/mocks/integrations/CurveV1Mock__factory.ts +0 -756
- package/src/types/factories/contracts/test/mocks/integrations/CurveV1StETHMock__factory.ts +0 -594
- package/src/types/factories/contracts/test/mocks/integrations/LidoMock.sol/ILidoMockEvents__factory.ts +0 -51
- package/src/types/factories/contracts/test/mocks/integrations/LidoMock.sol/LidoMock__factory.ts +0 -525
- package/src/types/factories/contracts/test/mocks/integrations/LidoMock.sol/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/integrations/UniswapV2Mock__factory.ts +0 -1060
- package/src/types/factories/contracts/test/mocks/integrations/UniswapV3Mock__factory.ts +0 -776
- package/src/types/factories/contracts/test/mocks/integrations/YearnV2Mock__factory.ts +0 -609
- package/src/types/factories/contracts/test/mocks/integrations/index.ts +0 -18
- package/src/types/factories/contracts/test/mocks/libraries/PercentageMathTest__factory.ts +0 -110
- package/src/types/factories/contracts/test/mocks/libraries/WadRayMathTest__factory.ts +0 -248
- package/src/types/factories/contracts/test/mocks/libraries/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/oracles/LPPriceFeedMock__factory.ts +0 -449
- package/src/types/factories/contracts/test/mocks/oracles/PriceFeedMock__factory.ts +0 -297
- package/src/types/factories/contracts/test/mocks/oracles/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/pool/CreditManagerMockForPoolTest__factory.ts +0 -194
- package/src/types/factories/contracts/test/mocks/pool/PoolServiceMock__factory.ts +0 -899
- package/src/types/factories/contracts/test/mocks/pool/TestPoolService__factory.ts +0 -976
- package/src/types/factories/contracts/test/mocks/pool/index.ts +0 -6
- package/src/types/factories/contracts/test/mocks/token/CERC20Mock__factory.ts +0 -486
- package/src/types/factories/contracts/test/mocks/token/ERC20ApproveRestricted.sol/ERC20ApproveRestrictedFalse__factory.ts +0 -395
- package/src/types/factories/contracts/test/mocks/token/ERC20ApproveRestricted.sol/ERC20ApproveRestrictedRevert__factory.ts +0 -395
- package/src/types/factories/contracts/test/mocks/token/ERC20ApproveRestricted.sol/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/token/ERC20Blocking.sol/ERC20BlockingMock__factory.ts +0 -446
- package/src/types/factories/contracts/test/mocks/token/ERC20Blocking.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/mocks/token/ERC20Fee.sol/TokenFeeMock__factory.ts +0 -454
- package/src/types/factories/contracts/test/mocks/token/ERC20Fee.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/mocks/token/ERC20Mock__factory.ts +0 -526
- package/src/types/factories/contracts/test/mocks/token/ERC20NonCompliant.sol/NonCompliantERC20__factory.ts +0 -86
- package/src/types/factories/contracts/test/mocks/token/ERC20NonCompliant.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/mocks/token/ERC721ReceiverMock.sol/ERC721ReceiverMock__factory.ts +0 -96
- package/src/types/factories/contracts/test/mocks/token/ERC721ReceiverMock.sol/IERC721Receiver__factory.ts +0 -60
- package/src/types/factories/contracts/test/mocks/token/ERC721ReceiverMock.sol/index.ts +0 -5
- package/src/types/factories/contracts/test/mocks/token/StETHMock__factory.ts +0 -441
- package/src/types/factories/contracts/test/mocks/token/WETHMock__factory.ts +0 -364
- package/src/types/factories/contracts/test/mocks/token/index.ts +0 -12
- package/src/types/factories/contracts/test/oracles/CurveLPPriceFeed.t.sol/CurveLPPriceFeedTest__factory.ts +0 -543
- package/src/types/factories/contracts/test/oracles/CurveLPPriceFeed.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/oracles/LPPriceFeed.t.sol/LPPriceFeedTest__factory.ts +0 -480
- package/src/types/factories/contracts/test/oracles/LPPriceFeed.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/oracles/PriceOracle.t.sol/PriceOracleTest__factory.ts +0 -511
- package/src/types/factories/contracts/test/oracles/PriceOracle.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/oracles/YearnPriceFeed.t.sol/YearnFeedTest__factory.ts +0 -474
- package/src/types/factories/contracts/test/oracles/YearnPriceFeed.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/oracles/ZeroPriceFeed.t.sol/ZeroFeedTest__factory.ts +0 -422
- package/src/types/factories/contracts/test/oracles/ZeroPriceFeed.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/oracles/index.ts +0 -8
- package/src/types/factories/contracts/test/pathfinder/CurveLPPathFinder.t.sol/CurveLPPathFinderTest__factory.ts +0 -673
- package/src/types/factories/contracts/test/pathfinder/CurveLPPathFinder.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/pathfinder/CurvePathFinder.t.sol/CurvePathFinderTest__factory.ts +0 -750
- package/src/types/factories/contracts/test/pathfinder/CurvePathFinder.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/pathfinder/NormalTokenPathFinder.t.sol/NormalTokenPathFinderTest__factory.ts +0 -839
- package/src/types/factories/contracts/test/pathfinder/NormalTokenPathFinder.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/pathfinder/PathFinderTestHelper__factory.ts +0 -652
- package/src/types/factories/contracts/test/pathfinder/SwapPathFinder.t.sol/SwapPathFinderTest__factory.ts +0 -912
- package/src/types/factories/contracts/test/pathfinder/SwapPathFinder.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/pathfinder/UniswapV2PathFinder.t.sol/UniswapV2PathFinderTest__factory.ts +0 -806
- package/src/types/factories/contracts/test/pathfinder/UniswapV2PathFinder.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/pathfinder/UniswapV3PathFinder.t.sol/UniswapV3PathFinderTest__factory.ts +0 -826
- package/src/types/factories/contracts/test/pathfinder/UniswapV3PathFinder.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/pathfinder/YearnPathFinder.t.sol/YearnPathFinderTest__factory.ts +0 -676
- package/src/types/factories/contracts/test/pathfinder/YearnPathFinder.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/pathfinder/index.ts +0 -11
- package/src/types/factories/contracts/test/pool/PoolService.t.sol/PoolServiceTest__factory.ts +0 -804
- package/src/types/factories/contracts/test/pool/PoolService.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/pool/index.ts +0 -4
- package/src/types/factories/contracts/test/sigp/AttackingContractNonPayable.sol/AttackContractNonPayable__factory.ts +0 -88
- package/src/types/factories/contracts/test/sigp/AttackingContractNonPayable.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/sigp/DummyMulticallTarget__factory.ts +0 -131
- package/src/types/factories/contracts/test/sigp/FlashLoanAttacker2__factory.ts +0 -164
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/ICrvDeposit__factory.ts +0 -57
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/ICurveGauge__factory.ts +0 -123
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/ICurveVoteEscrow__factory.ts +0 -90
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IDeposit__factory.ts +0 -230
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IFeeDistro__factory.ts +0 -46
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IMinter__factory.ts +0 -39
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IPools__factory.ts +0 -189
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IRegistry__factory.ts +0 -114
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IRewardFactory__factory.ts +0 -164
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IRewards__factory.ts +0 -190
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IStaker__factory.ts +0 -324
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IStashFactory__factory.ts +0 -60
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IStash__factory.ts +0 -95
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/ITokenFactory__factory.ts +0 -45
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/ITokenMinter__factory.ts +0 -62
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IVestedEscrow__factory.ts +0 -50
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IVoting__factory.ts +0 -131
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/IWalletChecker__factory.ts +0 -45
- package/src/types/factories/contracts/test/sigp/Interfaces.sol/index.ts +0 -21
- package/src/types/factories/contracts/test/sigp/NewConvexBaseRewardPoolMock.sol/NewBaseRewardPoolMock__factory.ts +0 -767
- package/src/types/factories/contracts/test/sigp/NewConvexBaseRewardPoolMock.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/sigp/NewConvexBoosterMock.sol/NewBoosterMock__factory.ts +0 -776
- package/src/types/factories/contracts/test/sigp/NewConvexBoosterMock.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/sigp/NewCreditConfigurator__factory.ts +0 -922
- package/src/types/factories/contracts/test/sigp/UniswapHelper.sol/UniswapV3AdapterTestHelper__factory.ts +0 -244
- package/src/types/factories/contracts/test/sigp/UniswapHelper.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/sigp/index.ts +0 -13
- package/src/types/factories/contracts/test/sigp/interfaces/ILockedCvx__factory.ts +0 -442
- package/src/types/factories/contracts/test/sigp/interfaces/index.ts +0 -4
- package/src/types/factories/contracts/test/sigp/stETHMock.sol/StETHMockERC20__factory.ts +0 -482
- package/src/types/factories/contracts/test/sigp/stETHMock.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/suites/BalanceHelper__factory.ts +0 -356
- package/src/types/factories/contracts/test/suites/BaseCreditTestSuite__factory.ts +0 -589
- package/src/types/factories/contracts/test/suites/CreditFacadeHelper__factory.ts +0 -421
- package/src/types/factories/contracts/test/suites/CreditFacadeTestSuite__factory.ts +0 -685
- package/src/types/factories/contracts/test/suites/CreditManagerTestSuite__factory.ts +0 -677
- package/src/types/factories/contracts/test/suites/PoolServiceTestSuite__factory.ts +0 -186
- package/src/types/factories/contracts/test/suites/TokensTestSuite__factory.ts +0 -744
- package/src/types/factories/contracts/test/suites/index.ts +0 -10
- package/src/types/factories/contracts/test/support/PauseMulticall.t.sol/PauseMulticallTest__factory.ts +0 -398
- package/src/types/factories/contracts/test/support/PauseMulticall.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/support/index.ts +0 -4
- package/src/types/factories/contracts/test/tokens/DegenNFT.t.sol/DegenNFTTest__factory.ts +0 -560
- package/src/types/factories/contracts/test/tokens/DegenNFT.t.sol/index.ts +0 -4
- package/src/types/factories/contracts/test/tokens/index.ts +0 -4
- package/src/types/factories/contracts/tokens/DegenNFT__factory.ts +0 -699
- package/src/types/factories/contracts/tokens/DieselToken__factory.ts +0 -464
- package/src/types/factories/contracts/tokens/GearToken__factory.ts +0 -719
- package/src/types/factories/contracts/tokens/PhantomERC20__factory.ts +0 -261
- package/src/types/factories/contracts/tokens/index.ts +0 -7
- package/src/types/factories/index.ts +0 -6
- package/src/types/hardhat.d.ts +0 -2715
- package/src/types/index.ts +0 -562
- package/src/utils/errors.ts +0 -11
- package/src/utils/extracter.ts +0 -30
- package/src/utils/formatter.ts +0 -146
- package/src/utils/loading.ts +0 -17
- package/src/utils/mappers.ts +0 -32
- package/src/utils/math.ts +0 -42
- package/src/utils/multicall.ts +0 -80
- package/src/utils/network.ts +0 -28
- package/src/utils/price.ts +0 -33
- package/src/utils/repeater.ts +0 -18
- package/src/utils/types.ts +0 -7
- package/src/utils/validate.ts +0 -8
- package/tsconfig.json +0 -62
package/src/types/factories/contracts/test/pool/PoolService.t.sol/PoolServiceTest__factory.ts
DELETED
|
@@ -1,804 +0,0 @@
|
|
|
1
|
-
/* Autogenerated file. Do not edit manually. */
|
|
2
|
-
/* tslint:disable */
|
|
3
|
-
/* eslint-disable */
|
|
4
|
-
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
|
|
5
|
-
import type { Provider, TransactionRequest } from "@ethersproject/providers";
|
|
6
|
-
import type {
|
|
7
|
-
PoolServiceTest,
|
|
8
|
-
PoolServiceTestInterface,
|
|
9
|
-
} from "../../../../../contracts/test/pool/PoolService.t.sol/PoolServiceTest";
|
|
10
|
-
|
|
11
|
-
const _abi = [
|
|
12
|
-
{
|
|
13
|
-
anonymous: false,
|
|
14
|
-
inputs: [
|
|
15
|
-
{
|
|
16
|
-
indexed: true,
|
|
17
|
-
internalType: "address",
|
|
18
|
-
name: "sender",
|
|
19
|
-
type: "address",
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
indexed: true,
|
|
23
|
-
internalType: "address",
|
|
24
|
-
name: "onBehalfOf",
|
|
25
|
-
type: "address",
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
indexed: false,
|
|
29
|
-
internalType: "uint256",
|
|
30
|
-
name: "amount",
|
|
31
|
-
type: "uint256",
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
indexed: false,
|
|
35
|
-
internalType: "uint256",
|
|
36
|
-
name: "referralCode",
|
|
37
|
-
type: "uint256",
|
|
38
|
-
},
|
|
39
|
-
],
|
|
40
|
-
name: "AddLiquidity",
|
|
41
|
-
type: "event",
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
anonymous: false,
|
|
45
|
-
inputs: [
|
|
46
|
-
{
|
|
47
|
-
indexed: true,
|
|
48
|
-
internalType: "address",
|
|
49
|
-
name: "creditManager",
|
|
50
|
-
type: "address",
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
indexed: true,
|
|
54
|
-
internalType: "address",
|
|
55
|
-
name: "creditAccount",
|
|
56
|
-
type: "address",
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
indexed: false,
|
|
60
|
-
internalType: "uint256",
|
|
61
|
-
name: "amount",
|
|
62
|
-
type: "uint256",
|
|
63
|
-
},
|
|
64
|
-
],
|
|
65
|
-
name: "Borrow",
|
|
66
|
-
type: "event",
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
anonymous: false,
|
|
70
|
-
inputs: [
|
|
71
|
-
{
|
|
72
|
-
indexed: true,
|
|
73
|
-
internalType: "address",
|
|
74
|
-
name: "creditManager",
|
|
75
|
-
type: "address",
|
|
76
|
-
},
|
|
77
|
-
],
|
|
78
|
-
name: "BorrowForbidden",
|
|
79
|
-
type: "event",
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
anonymous: false,
|
|
83
|
-
inputs: [
|
|
84
|
-
{
|
|
85
|
-
indexed: true,
|
|
86
|
-
internalType: "address",
|
|
87
|
-
name: "creditManager",
|
|
88
|
-
type: "address",
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
name: "NewCreditManagerConnected",
|
|
92
|
-
type: "event",
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
anonymous: false,
|
|
96
|
-
inputs: [
|
|
97
|
-
{
|
|
98
|
-
indexed: false,
|
|
99
|
-
internalType: "uint256",
|
|
100
|
-
name: "newLimit",
|
|
101
|
-
type: "uint256",
|
|
102
|
-
},
|
|
103
|
-
],
|
|
104
|
-
name: "NewExpectedLiquidityLimit",
|
|
105
|
-
type: "event",
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
anonymous: false,
|
|
109
|
-
inputs: [
|
|
110
|
-
{
|
|
111
|
-
indexed: true,
|
|
112
|
-
internalType: "address",
|
|
113
|
-
name: "newInterestRateModel",
|
|
114
|
-
type: "address",
|
|
115
|
-
},
|
|
116
|
-
],
|
|
117
|
-
name: "NewInterestRateModel",
|
|
118
|
-
type: "event",
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
anonymous: false,
|
|
122
|
-
inputs: [
|
|
123
|
-
{
|
|
124
|
-
indexed: false,
|
|
125
|
-
internalType: "uint256",
|
|
126
|
-
name: "fee",
|
|
127
|
-
type: "uint256",
|
|
128
|
-
},
|
|
129
|
-
],
|
|
130
|
-
name: "NewWithdrawFee",
|
|
131
|
-
type: "event",
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
anonymous: false,
|
|
135
|
-
inputs: [
|
|
136
|
-
{
|
|
137
|
-
indexed: true,
|
|
138
|
-
internalType: "address",
|
|
139
|
-
name: "sender",
|
|
140
|
-
type: "address",
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
indexed: true,
|
|
144
|
-
internalType: "address",
|
|
145
|
-
name: "to",
|
|
146
|
-
type: "address",
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
indexed: false,
|
|
150
|
-
internalType: "uint256",
|
|
151
|
-
name: "amount",
|
|
152
|
-
type: "uint256",
|
|
153
|
-
},
|
|
154
|
-
],
|
|
155
|
-
name: "RemoveLiquidity",
|
|
156
|
-
type: "event",
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
anonymous: false,
|
|
160
|
-
inputs: [
|
|
161
|
-
{
|
|
162
|
-
indexed: true,
|
|
163
|
-
internalType: "address",
|
|
164
|
-
name: "creditManager",
|
|
165
|
-
type: "address",
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
indexed: false,
|
|
169
|
-
internalType: "uint256",
|
|
170
|
-
name: "borrowedAmount",
|
|
171
|
-
type: "uint256",
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
indexed: false,
|
|
175
|
-
internalType: "uint256",
|
|
176
|
-
name: "profit",
|
|
177
|
-
type: "uint256",
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
indexed: false,
|
|
181
|
-
internalType: "uint256",
|
|
182
|
-
name: "loss",
|
|
183
|
-
type: "uint256",
|
|
184
|
-
},
|
|
185
|
-
],
|
|
186
|
-
name: "Repay",
|
|
187
|
-
type: "event",
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
anonymous: false,
|
|
191
|
-
inputs: [
|
|
192
|
-
{
|
|
193
|
-
indexed: true,
|
|
194
|
-
internalType: "address",
|
|
195
|
-
name: "creditManager",
|
|
196
|
-
type: "address",
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
indexed: false,
|
|
200
|
-
internalType: "uint256",
|
|
201
|
-
name: "loss",
|
|
202
|
-
type: "uint256",
|
|
203
|
-
},
|
|
204
|
-
],
|
|
205
|
-
name: "UncoveredLoss",
|
|
206
|
-
type: "event",
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
anonymous: false,
|
|
210
|
-
inputs: [
|
|
211
|
-
{
|
|
212
|
-
indexed: false,
|
|
213
|
-
internalType: "string",
|
|
214
|
-
name: "",
|
|
215
|
-
type: "string",
|
|
216
|
-
},
|
|
217
|
-
],
|
|
218
|
-
name: "log",
|
|
219
|
-
type: "event",
|
|
220
|
-
},
|
|
221
|
-
{
|
|
222
|
-
anonymous: false,
|
|
223
|
-
inputs: [
|
|
224
|
-
{
|
|
225
|
-
indexed: false,
|
|
226
|
-
internalType: "address",
|
|
227
|
-
name: "",
|
|
228
|
-
type: "address",
|
|
229
|
-
},
|
|
230
|
-
],
|
|
231
|
-
name: "log_address",
|
|
232
|
-
type: "event",
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
anonymous: false,
|
|
236
|
-
inputs: [
|
|
237
|
-
{
|
|
238
|
-
indexed: false,
|
|
239
|
-
internalType: "bytes",
|
|
240
|
-
name: "",
|
|
241
|
-
type: "bytes",
|
|
242
|
-
},
|
|
243
|
-
],
|
|
244
|
-
name: "log_bytes",
|
|
245
|
-
type: "event",
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
anonymous: false,
|
|
249
|
-
inputs: [
|
|
250
|
-
{
|
|
251
|
-
indexed: false,
|
|
252
|
-
internalType: "bytes32",
|
|
253
|
-
name: "",
|
|
254
|
-
type: "bytes32",
|
|
255
|
-
},
|
|
256
|
-
],
|
|
257
|
-
name: "log_bytes32",
|
|
258
|
-
type: "event",
|
|
259
|
-
},
|
|
260
|
-
{
|
|
261
|
-
anonymous: false,
|
|
262
|
-
inputs: [
|
|
263
|
-
{
|
|
264
|
-
indexed: false,
|
|
265
|
-
internalType: "int256",
|
|
266
|
-
name: "",
|
|
267
|
-
type: "int256",
|
|
268
|
-
},
|
|
269
|
-
],
|
|
270
|
-
name: "log_int",
|
|
271
|
-
type: "event",
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
anonymous: false,
|
|
275
|
-
inputs: [
|
|
276
|
-
{
|
|
277
|
-
indexed: false,
|
|
278
|
-
internalType: "string",
|
|
279
|
-
name: "key",
|
|
280
|
-
type: "string",
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
indexed: false,
|
|
284
|
-
internalType: "address",
|
|
285
|
-
name: "val",
|
|
286
|
-
type: "address",
|
|
287
|
-
},
|
|
288
|
-
],
|
|
289
|
-
name: "log_named_address",
|
|
290
|
-
type: "event",
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
anonymous: false,
|
|
294
|
-
inputs: [
|
|
295
|
-
{
|
|
296
|
-
indexed: false,
|
|
297
|
-
internalType: "string",
|
|
298
|
-
name: "key",
|
|
299
|
-
type: "string",
|
|
300
|
-
},
|
|
301
|
-
{
|
|
302
|
-
indexed: false,
|
|
303
|
-
internalType: "bytes",
|
|
304
|
-
name: "val",
|
|
305
|
-
type: "bytes",
|
|
306
|
-
},
|
|
307
|
-
],
|
|
308
|
-
name: "log_named_bytes",
|
|
309
|
-
type: "event",
|
|
310
|
-
},
|
|
311
|
-
{
|
|
312
|
-
anonymous: false,
|
|
313
|
-
inputs: [
|
|
314
|
-
{
|
|
315
|
-
indexed: false,
|
|
316
|
-
internalType: "string",
|
|
317
|
-
name: "key",
|
|
318
|
-
type: "string",
|
|
319
|
-
},
|
|
320
|
-
{
|
|
321
|
-
indexed: false,
|
|
322
|
-
internalType: "bytes32",
|
|
323
|
-
name: "val",
|
|
324
|
-
type: "bytes32",
|
|
325
|
-
},
|
|
326
|
-
],
|
|
327
|
-
name: "log_named_bytes32",
|
|
328
|
-
type: "event",
|
|
329
|
-
},
|
|
330
|
-
{
|
|
331
|
-
anonymous: false,
|
|
332
|
-
inputs: [
|
|
333
|
-
{
|
|
334
|
-
indexed: false,
|
|
335
|
-
internalType: "string",
|
|
336
|
-
name: "key",
|
|
337
|
-
type: "string",
|
|
338
|
-
},
|
|
339
|
-
{
|
|
340
|
-
indexed: false,
|
|
341
|
-
internalType: "int256",
|
|
342
|
-
name: "val",
|
|
343
|
-
type: "int256",
|
|
344
|
-
},
|
|
345
|
-
{
|
|
346
|
-
indexed: false,
|
|
347
|
-
internalType: "uint256",
|
|
348
|
-
name: "decimals",
|
|
349
|
-
type: "uint256",
|
|
350
|
-
},
|
|
351
|
-
],
|
|
352
|
-
name: "log_named_decimal_int",
|
|
353
|
-
type: "event",
|
|
354
|
-
},
|
|
355
|
-
{
|
|
356
|
-
anonymous: false,
|
|
357
|
-
inputs: [
|
|
358
|
-
{
|
|
359
|
-
indexed: false,
|
|
360
|
-
internalType: "string",
|
|
361
|
-
name: "key",
|
|
362
|
-
type: "string",
|
|
363
|
-
},
|
|
364
|
-
{
|
|
365
|
-
indexed: false,
|
|
366
|
-
internalType: "uint256",
|
|
367
|
-
name: "val",
|
|
368
|
-
type: "uint256",
|
|
369
|
-
},
|
|
370
|
-
{
|
|
371
|
-
indexed: false,
|
|
372
|
-
internalType: "uint256",
|
|
373
|
-
name: "decimals",
|
|
374
|
-
type: "uint256",
|
|
375
|
-
},
|
|
376
|
-
],
|
|
377
|
-
name: "log_named_decimal_uint",
|
|
378
|
-
type: "event",
|
|
379
|
-
},
|
|
380
|
-
{
|
|
381
|
-
anonymous: false,
|
|
382
|
-
inputs: [
|
|
383
|
-
{
|
|
384
|
-
indexed: false,
|
|
385
|
-
internalType: "string",
|
|
386
|
-
name: "key",
|
|
387
|
-
type: "string",
|
|
388
|
-
},
|
|
389
|
-
{
|
|
390
|
-
indexed: false,
|
|
391
|
-
internalType: "int256",
|
|
392
|
-
name: "val",
|
|
393
|
-
type: "int256",
|
|
394
|
-
},
|
|
395
|
-
],
|
|
396
|
-
name: "log_named_int",
|
|
397
|
-
type: "event",
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
anonymous: false,
|
|
401
|
-
inputs: [
|
|
402
|
-
{
|
|
403
|
-
indexed: false,
|
|
404
|
-
internalType: "string",
|
|
405
|
-
name: "key",
|
|
406
|
-
type: "string",
|
|
407
|
-
},
|
|
408
|
-
{
|
|
409
|
-
indexed: false,
|
|
410
|
-
internalType: "string",
|
|
411
|
-
name: "val",
|
|
412
|
-
type: "string",
|
|
413
|
-
},
|
|
414
|
-
],
|
|
415
|
-
name: "log_named_string",
|
|
416
|
-
type: "event",
|
|
417
|
-
},
|
|
418
|
-
{
|
|
419
|
-
anonymous: false,
|
|
420
|
-
inputs: [
|
|
421
|
-
{
|
|
422
|
-
indexed: false,
|
|
423
|
-
internalType: "string",
|
|
424
|
-
name: "key",
|
|
425
|
-
type: "string",
|
|
426
|
-
},
|
|
427
|
-
{
|
|
428
|
-
indexed: false,
|
|
429
|
-
internalType: "uint256",
|
|
430
|
-
name: "val",
|
|
431
|
-
type: "uint256",
|
|
432
|
-
},
|
|
433
|
-
],
|
|
434
|
-
name: "log_named_uint",
|
|
435
|
-
type: "event",
|
|
436
|
-
},
|
|
437
|
-
{
|
|
438
|
-
anonymous: false,
|
|
439
|
-
inputs: [
|
|
440
|
-
{
|
|
441
|
-
indexed: false,
|
|
442
|
-
internalType: "string",
|
|
443
|
-
name: "",
|
|
444
|
-
type: "string",
|
|
445
|
-
},
|
|
446
|
-
],
|
|
447
|
-
name: "log_string",
|
|
448
|
-
type: "event",
|
|
449
|
-
},
|
|
450
|
-
{
|
|
451
|
-
anonymous: false,
|
|
452
|
-
inputs: [
|
|
453
|
-
{
|
|
454
|
-
indexed: false,
|
|
455
|
-
internalType: "uint256",
|
|
456
|
-
name: "",
|
|
457
|
-
type: "uint256",
|
|
458
|
-
},
|
|
459
|
-
],
|
|
460
|
-
name: "log_uint",
|
|
461
|
-
type: "event",
|
|
462
|
-
},
|
|
463
|
-
{
|
|
464
|
-
anonymous: false,
|
|
465
|
-
inputs: [
|
|
466
|
-
{
|
|
467
|
-
indexed: false,
|
|
468
|
-
internalType: "bytes",
|
|
469
|
-
name: "",
|
|
470
|
-
type: "bytes",
|
|
471
|
-
},
|
|
472
|
-
],
|
|
473
|
-
name: "logs",
|
|
474
|
-
type: "event",
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
inputs: [],
|
|
478
|
-
name: "IS_TEST",
|
|
479
|
-
outputs: [
|
|
480
|
-
{
|
|
481
|
-
internalType: "bool",
|
|
482
|
-
name: "",
|
|
483
|
-
type: "bool",
|
|
484
|
-
},
|
|
485
|
-
],
|
|
486
|
-
stateMutability: "view",
|
|
487
|
-
type: "function",
|
|
488
|
-
},
|
|
489
|
-
{
|
|
490
|
-
inputs: [],
|
|
491
|
-
name: "failed",
|
|
492
|
-
outputs: [
|
|
493
|
-
{
|
|
494
|
-
internalType: "bool",
|
|
495
|
-
name: "",
|
|
496
|
-
type: "bool",
|
|
497
|
-
},
|
|
498
|
-
],
|
|
499
|
-
stateMutability: "nonpayable",
|
|
500
|
-
type: "function",
|
|
501
|
-
},
|
|
502
|
-
{
|
|
503
|
-
inputs: [],
|
|
504
|
-
name: "setUp",
|
|
505
|
-
outputs: [],
|
|
506
|
-
stateMutability: "nonpayable",
|
|
507
|
-
type: "function",
|
|
508
|
-
},
|
|
509
|
-
{
|
|
510
|
-
inputs: [],
|
|
511
|
-
name: "test_PS_01_start_parameters_correct",
|
|
512
|
-
outputs: [],
|
|
513
|
-
stateMutability: "nonpayable",
|
|
514
|
-
type: "function",
|
|
515
|
-
},
|
|
516
|
-
{
|
|
517
|
-
inputs: [],
|
|
518
|
-
name: "test_PS_02_add_liquidity_adds_correctly",
|
|
519
|
-
outputs: [],
|
|
520
|
-
stateMutability: "nonpayable",
|
|
521
|
-
type: "function",
|
|
522
|
-
},
|
|
523
|
-
{
|
|
524
|
-
inputs: [],
|
|
525
|
-
name: "test_PS_03_remove_liquidity_removes_correctly",
|
|
526
|
-
outputs: [],
|
|
527
|
-
stateMutability: "nonpayable",
|
|
528
|
-
type: "function",
|
|
529
|
-
},
|
|
530
|
-
{
|
|
531
|
-
inputs: [],
|
|
532
|
-
name: "test_PS_04_cannot_be_used_while_paused",
|
|
533
|
-
outputs: [],
|
|
534
|
-
stateMutability: "nonpayable",
|
|
535
|
-
type: "function",
|
|
536
|
-
},
|
|
537
|
-
{
|
|
538
|
-
inputs: [],
|
|
539
|
-
name: "test_PS_05_starting_cumulative_index_correct",
|
|
540
|
-
outputs: [],
|
|
541
|
-
stateMutability: "nonpayable",
|
|
542
|
-
type: "function",
|
|
543
|
-
},
|
|
544
|
-
{
|
|
545
|
-
inputs: [],
|
|
546
|
-
name: "test_PS_06_diesel_rate_computes_correctly",
|
|
547
|
-
outputs: [],
|
|
548
|
-
stateMutability: "nonpayable",
|
|
549
|
-
type: "function",
|
|
550
|
-
},
|
|
551
|
-
{
|
|
552
|
-
inputs: [],
|
|
553
|
-
name: "test_PS_07_correctly_adds_liquidity_at_new_diesel_rate",
|
|
554
|
-
outputs: [],
|
|
555
|
-
stateMutability: "nonpayable",
|
|
556
|
-
type: "function",
|
|
557
|
-
},
|
|
558
|
-
{
|
|
559
|
-
inputs: [],
|
|
560
|
-
name: "test_PS_08_correctly_removes_liquidity_at_new_diesel_rate",
|
|
561
|
-
outputs: [],
|
|
562
|
-
stateMutability: "nonpayable",
|
|
563
|
-
type: "function",
|
|
564
|
-
},
|
|
565
|
-
{
|
|
566
|
-
inputs: [],
|
|
567
|
-
name: "test_PS_09_admin_functions_revert_on_non_admin",
|
|
568
|
-
outputs: [],
|
|
569
|
-
stateMutability: "nonpayable",
|
|
570
|
-
type: "function",
|
|
571
|
-
},
|
|
572
|
-
{
|
|
573
|
-
inputs: [],
|
|
574
|
-
name: "test_PS_10_connectCreditManager_fails_on_incompatible_CM",
|
|
575
|
-
outputs: [],
|
|
576
|
-
stateMutability: "nonpayable",
|
|
577
|
-
type: "function",
|
|
578
|
-
},
|
|
579
|
-
{
|
|
580
|
-
inputs: [],
|
|
581
|
-
name: "test_PS_11_CM_is_connected_correctly",
|
|
582
|
-
outputs: [],
|
|
583
|
-
stateMutability: "nonpayable",
|
|
584
|
-
type: "function",
|
|
585
|
-
},
|
|
586
|
-
{
|
|
587
|
-
inputs: [],
|
|
588
|
-
name: "test_PS_12_CA_can_be_lent_repaid_only_by_CM",
|
|
589
|
-
outputs: [],
|
|
590
|
-
stateMutability: "nonpayable",
|
|
591
|
-
type: "function",
|
|
592
|
-
},
|
|
593
|
-
{
|
|
594
|
-
inputs: [],
|
|
595
|
-
name: "test_PS_13_lendCreditAccount_reverts_on_forbidden_CM",
|
|
596
|
-
outputs: [],
|
|
597
|
-
stateMutability: "nonpayable",
|
|
598
|
-
type: "function",
|
|
599
|
-
},
|
|
600
|
-
{
|
|
601
|
-
inputs: [],
|
|
602
|
-
name: "test_PS_14_lendCreditAccount_correctly_transfers_tokens",
|
|
603
|
-
outputs: [],
|
|
604
|
-
stateMutability: "nonpayable",
|
|
605
|
-
type: "function",
|
|
606
|
-
},
|
|
607
|
-
{
|
|
608
|
-
inputs: [],
|
|
609
|
-
name: "test_PS_15_lendCreditAccount_emits_event",
|
|
610
|
-
outputs: [],
|
|
611
|
-
stateMutability: "nonpayable",
|
|
612
|
-
type: "function",
|
|
613
|
-
},
|
|
614
|
-
{
|
|
615
|
-
inputs: [],
|
|
616
|
-
name: "test_PS_16_lendCreditAccount_correctly_updates_parameters",
|
|
617
|
-
outputs: [],
|
|
618
|
-
stateMutability: "nonpayable",
|
|
619
|
-
type: "function",
|
|
620
|
-
},
|
|
621
|
-
{
|
|
622
|
-
inputs: [],
|
|
623
|
-
name: "test_PS_17_lendCreditAccount_correctly_updates_borrow_rate",
|
|
624
|
-
outputs: [],
|
|
625
|
-
stateMutability: "nonpayable",
|
|
626
|
-
type: "function",
|
|
627
|
-
},
|
|
628
|
-
{
|
|
629
|
-
inputs: [],
|
|
630
|
-
name: "test_PS_18_repayCreditAccount_emits_event",
|
|
631
|
-
outputs: [],
|
|
632
|
-
stateMutability: "nonpayable",
|
|
633
|
-
type: "function",
|
|
634
|
-
},
|
|
635
|
-
{
|
|
636
|
-
inputs: [],
|
|
637
|
-
name: "test_PS_19_repayCreditAccount_correctly_updates_on_uncovered_loss",
|
|
638
|
-
outputs: [],
|
|
639
|
-
stateMutability: "nonpayable",
|
|
640
|
-
type: "function",
|
|
641
|
-
},
|
|
642
|
-
{
|
|
643
|
-
inputs: [],
|
|
644
|
-
name: "test_PS_20_repayCreditAccount_correctly_updates_on_covered_loss",
|
|
645
|
-
outputs: [],
|
|
646
|
-
stateMutability: "nonpayable",
|
|
647
|
-
type: "function",
|
|
648
|
-
},
|
|
649
|
-
{
|
|
650
|
-
inputs: [],
|
|
651
|
-
name: "test_PS_21_repayCreditAccount_correctly_updates_on_profit",
|
|
652
|
-
outputs: [],
|
|
653
|
-
stateMutability: "nonpayable",
|
|
654
|
-
type: "function",
|
|
655
|
-
},
|
|
656
|
-
{
|
|
657
|
-
inputs: [],
|
|
658
|
-
name: "test_PS_22_repayCreditAccount_does_not_change_diesel_rate",
|
|
659
|
-
outputs: [],
|
|
660
|
-
stateMutability: "nonpayable",
|
|
661
|
-
type: "function",
|
|
662
|
-
},
|
|
663
|
-
{
|
|
664
|
-
inputs: [],
|
|
665
|
-
name: "test_PS_23_diesel_conversion_is_correct",
|
|
666
|
-
outputs: [],
|
|
667
|
-
stateMutability: "nonpayable",
|
|
668
|
-
type: "function",
|
|
669
|
-
},
|
|
670
|
-
{
|
|
671
|
-
inputs: [],
|
|
672
|
-
name: "test_PS_24_updateInterestRateModel_works_correctly_and_emits_event",
|
|
673
|
-
outputs: [],
|
|
674
|
-
stateMutability: "nonpayable",
|
|
675
|
-
type: "function",
|
|
676
|
-
},
|
|
677
|
-
{
|
|
678
|
-
inputs: [],
|
|
679
|
-
name: "test_PS_25_updateInterestRateModel_correctly_computes_new_borrow_rate",
|
|
680
|
-
outputs: [],
|
|
681
|
-
stateMutability: "nonpayable",
|
|
682
|
-
type: "function",
|
|
683
|
-
},
|
|
684
|
-
{
|
|
685
|
-
inputs: [],
|
|
686
|
-
name: "test_PS_26_updateBorrowRate_correct",
|
|
687
|
-
outputs: [],
|
|
688
|
-
stateMutability: "nonpayable",
|
|
689
|
-
type: "function",
|
|
690
|
-
},
|
|
691
|
-
{
|
|
692
|
-
inputs: [],
|
|
693
|
-
name: "test_PS_27_calcLinearCumulative_RAY_correct",
|
|
694
|
-
outputs: [],
|
|
695
|
-
stateMutability: "nonpayable",
|
|
696
|
-
type: "function",
|
|
697
|
-
},
|
|
698
|
-
{
|
|
699
|
-
inputs: [],
|
|
700
|
-
name: "test_PS_28_expectedLiquidity_correct",
|
|
701
|
-
outputs: [],
|
|
702
|
-
stateMutability: "nonpayable",
|
|
703
|
-
type: "function",
|
|
704
|
-
},
|
|
705
|
-
{
|
|
706
|
-
inputs: [],
|
|
707
|
-
name: "test_PS_29_setExpectedLiquidityLimit_correct_and_emits_event",
|
|
708
|
-
outputs: [],
|
|
709
|
-
stateMutability: "nonpayable",
|
|
710
|
-
type: "function",
|
|
711
|
-
},
|
|
712
|
-
{
|
|
713
|
-
inputs: [],
|
|
714
|
-
name: "test_PS_30_addLiquidity_reverts_above_liquidity_limit",
|
|
715
|
-
outputs: [],
|
|
716
|
-
stateMutability: "nonpayable",
|
|
717
|
-
type: "function",
|
|
718
|
-
},
|
|
719
|
-
{
|
|
720
|
-
inputs: [],
|
|
721
|
-
name: "test_PS_31_setWithdrawFee_reverts_on_fee_too_lage",
|
|
722
|
-
outputs: [],
|
|
723
|
-
stateMutability: "nonpayable",
|
|
724
|
-
type: "function",
|
|
725
|
-
},
|
|
726
|
-
{
|
|
727
|
-
inputs: [],
|
|
728
|
-
name: "test_PS_32_setWithdrawFee_correct_and_emits_event",
|
|
729
|
-
outputs: [],
|
|
730
|
-
stateMutability: "nonpayable",
|
|
731
|
-
type: "function",
|
|
732
|
-
},
|
|
733
|
-
{
|
|
734
|
-
inputs: [],
|
|
735
|
-
name: "test_PS_33_removeLiquidity_takes_withdrawal_fee",
|
|
736
|
-
outputs: [],
|
|
737
|
-
stateMutability: "nonpayable",
|
|
738
|
-
type: "function",
|
|
739
|
-
},
|
|
740
|
-
{
|
|
741
|
-
inputs: [],
|
|
742
|
-
name: "test_PS_34_connectCreditManager_reverts_on_duplicate",
|
|
743
|
-
outputs: [],
|
|
744
|
-
stateMutability: "nonpayable",
|
|
745
|
-
type: "function",
|
|
746
|
-
},
|
|
747
|
-
{
|
|
748
|
-
inputs: [],
|
|
749
|
-
name: "test_PS_35_updateInterestRateModel_reverts_on_zero_address",
|
|
750
|
-
outputs: [],
|
|
751
|
-
stateMutability: "nonpayable",
|
|
752
|
-
type: "function",
|
|
753
|
-
},
|
|
754
|
-
];
|
|
755
|
-
|
|
756
|
-
const _bytecode =
|
|
757
|
-
"0x60806040526000805460ff1916600190811790915580546001600160a01b031916737109709ecfa91a80626ff3989d68f67f5b1dd12d1790553480156200004557600080fd5b506201db0080620000576000396000f3fe60806040523480156200001157600080fd5b5060043610620002c75760003560e01c80639ff0b56d116200017c578063d7ddc66811620000e9578063f2aeb7e01162000097578063fc96889e116200007a578063fc96889e1462000444578063fdaaba84146200044e578063fe37254f146200045857600080fd5b8063f2aeb7e0146200042c578063fa7626d4146200043657600080fd5b8063daafd16011620000cc578063daafd160146200040e578063dff598901462000418578063e903addd146200042257600080fd5b8063d7ddc66814620003fa578063da9bea59146200040457600080fd5b8063b2b035741162000147578063bcf055df116200012a578063bcf055df14620003dc578063ce14b9f814620003e6578063d3e74fdc14620003f057600080fd5b8063b2b0357414620003b4578063ba414fa614620003be57600080fd5b80639ff0b56d146200038c578063a71dcc401462000396578063aa1b5dc614620003a0578063af79065714620003aa57600080fd5b806348d594df11620002385780638b029e5f11620001e6578063924c65f511620001c9578063924c65f5146200036e57806393621926146200037857806398e13788146200038257600080fd5b80638b029e5f146200035a5780639193708a146200036457600080fd5b806368dcdb74116200021b57806368dcdb74146200033c5780636d4b37df1462000346578063760c8ecd146200035057600080fd5b806348d594df146200032857806349551d02146200033257600080fd5b80632a14119d116200029657806336d9daa1116200027957806336d9daa1146200030a5780633f5ece03146200031457806342f36c15146200031e57600080fd5b80632a14119d14620002f65780633133cc90146200030057600080fd5b80630a9254e414620002cc5780630d9e915f14620002d85780631c2e7ac714620002e257806326edea9514620002ec575b600080fd5b620002d662000462565b005b620002d66200093a565b620002d662000eaf565b620002d6620011de565b620002d6620015ac565b620002d662001878565b620002d662001f01565b620002d6620022ff565b620002d662002866565b620002d662002b76565b620002d662003705565b620002d662003db9565b620002d6620047c2565b620002d662004bde565b620002d662004de8565b620002d662005355565b620002d662005787565b620002d662005cdb565b620002d662005f26565b620002d6620060d2565b620002d662006280565b620002d662006918565b620002d6620070ff565b620002d662007f1f565b620003c8620083f4565b604051901515815260200160405180910390f35b620002d66200855e565b620002d662008811565b620002d662008f31565b620002d6620090df565b620002d6620096e6565b620002d662009c45565b620002d66200a3ed565b620002d66200b115565b620002d66200b94a565b600054620003c89060ff1681565b620002d66200bd6b565b620002d66200bddd565b620002d66200c1ba565b60405162000470906200cf78565b604051809103906000f0801580156200048d573d6000803e3d6000fd5b50600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff93841681029190911791829055604051910490911690620004ee906200cf86565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103906000f08015801562000528573d6000803e3d6000fd5b50600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169182179055604080517f570a7af2000000000000000000000000000000000000000000000000000000008152905163570a7af2916004808201926020929091908290030181865afa158015620005c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005e891906200cfc5565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316178155600254604080517f36dda7d5000000000000000000000000000000000000000000000000000000008152905191909316926336dda7d592818101926020929091908290030181865afa15801562000684573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006aa91906200cfc5565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055600254604080517f6f307dc300000000000000000000000000000000000000000000000000000000815290519190921691636f307dc39160048083019260209291908290030181865afa15801562000747573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200076d91906200cfc5565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055600254604080517fe1463e580000000000000000000000000000000000000000000000000000000081529051919092169163e1463e589160048083019260209291908290030181865afa1580156200080a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200083091906200cfc5565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055600254604080517fde2873590000000000000000000000000000000000000000000000000000000081529051919092169163de2873599160048083019260209291908290030181865afa158015620008cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008f391906200cfc5565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b158015620009ba57600080fd5b505af1158015620009cf573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e80000928101929092527390f79bf6eb2c4f870365e785982e1f101e93b906602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b15801562000a6a57600080fd5b505af115801562000a7f573d6000803e3d6000fd5b505060045473ffffffffffffffffffffffffffffffffffffffff169150637dfc6afe905062000ab8678ac7230489e8000060026200d01b565b6040518263ffffffff1660e01b815260040162000ad791815260200190565b600060405180830381600087803b15801562000af257600080fd5b505af115801562000b07573d6000803e3d6000fd5b50506001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527390f79bf6eb2c4f870365e785982e1f101e93b906600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b15801562000b8b57600080fd5b505af115801562000ba0573d6000803e3d6000fd5b5050600480546040517f05fe138b000000000000000000000000000000000000000000000000000000008152674563918244f400009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015273ffffffffffffffffffffffffffffffffffffffff1692506305fe138b91506044016020604051808303816000875af115801562000c38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c5e91906200d05b565b5060055462000cb49073ffffffffffffffffffffffffffffffffffffffff167390f79bf6eb2c4f870365e785982e1f101e93b90662000cae674563918244f40000678ac7230489e800006200d075565b6200c76d565b60065462000d259073ffffffffffffffffffffffffffffffffffffffff1673f39fd6e51aad88f6f4ce6ab8827279cfffb9226662000cfc674563918244f4000060026200d01b565b62000d19678ac7230489e8000068056bc75e2d631000006200d075565b62000cae91906200d08f565b62000dec600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000d97573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dbd91906200d05b565b62000dd9674563918244f40000678ac7230489e800006200d075565b62000de69060026200d01b565b6200c78a565b62000ead600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743753596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000e5e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e8491906200d05b565b62000e99674563918244f4000060026200d01b565b62000de690678ac7230489e800006200d075565b565b6001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b15801562000f2f57600080fd5b505af115801562000f44573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e80000928101929092527390f79bf6eb2c4f870365e785982e1f101e93b906602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b15801562000fdf57600080fd5b505af115801562000ff4573d6000803e3d6000fd5b505060045473ffffffffffffffffffffffffffffffffffffffff169150637dfc6afe90506200102d678ac7230489e8000060026200d01b565b6040518263ffffffff1660e01b81526004016200104c91815260200190565b600060405180830381600087803b1580156200106757600080fd5b505af11580156200107c573d6000803e3d6000fd5b505050506200112d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620010f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200111891906200d05b565b62000de6678ac7230489e8000060026200d01b565b62000ead600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663788c6bfe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200119f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011c591906200d05b565b62000de66b033b2e3c9fd0803ce800000060026200d01b565b6001546040517f06447d5600000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116906306447d5690602401600060405180830381600087803b1580156200125e57600080fd5b505af115801562001273573d6000803e3d6000fd5b5050600154604080518082018252600381527f5053300000000000000000000000000000000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216935063f28dceb39250620012ff916004016200d125565b600060405180830381600087803b1580156200131a57600080fd5b505af11580156200132f573d6000803e3d6000fd5b5050600480546040517fbf28068b00000000000000000000000000000000000000000000000000000000815260009281019290925273c4375b7de8af5a38a93548eb8453a498222c4ff2602483015273ffffffffffffffffffffffffffffffffffffffff16925063bf28068b9150604401600060405180830381600087803b158015620013bb57600080fd5b505af1158015620013d0573d6000803e3d6000fd5b5050600154604080518082018252600381527f5053300000000000000000000000000000000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216935063f28dceb392506200145c916004016200d125565b600060405180830381600087803b1580156200147757600080fd5b505af11580156200148c573d6000803e3d6000fd5b5050600480546040517fca9505e4000000000000000000000000000000000000000000000000000000008152600092810183905260248101839052604481019290925273ffffffffffffffffffffffffffffffffffffffff16925063ca9505e491506064015b600060405180830381600087803b1580156200150d57600080fd5b505af115801562001522573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200159157600080fd5b505af1158015620015a6573d6000803e3d6000fd5b50505050565b600180546040517f491cc7c2000000000000000000000000000000000000000000000000000000008152600060048201819052602482018190526044820152606481019290925273ffffffffffffffffffffffffffffffffffffffff169063491cc7c290608401600060405180830381600087803b1580156200162e57600080fd5b505af115801562001643573d6000803e3d6000fd5b505050507fd5fe46099fa396290a7f57e36c3c3c8774e2562c18ed5d1dcc0fa75071e03f1d60326040516200167a91815260200190565b60405180910390a16001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200170257600080fd5b505af115801562001717573d6000803e3d6000fd5b5050600480546040517fb6ac642a00000000000000000000000000000000000000000000000000000000815260329281019290925273ffffffffffffffffffffffffffffffffffffffff16925063b6ac642a9150602401600060405180830381600087803b1580156200178957600080fd5b505af11580156200179e573d6000803e3d6000fd5b5050505062000ead600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e941fa786040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200183a91906200d05b565b60326040518060400160405280601d81526020017f7769746864726177466565206e6f742073657420636f72726563746c790000008152506200c89c565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b158015620018f857600080fd5b505af11580156200190d573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b1580156200198357600080fd5b505af115801562001998573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b15801562001a1c57600080fd5b505af115801562001a31573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b15801562001acc57600080fd5b505af115801562001ae1573d6000803e3d6000fd5b505060075473ffffffffffffffffffffffffffffffffffffffff16915063bf28068b905062001b1a6002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273c4375b7de8af5a38a93548eb8453a498222c4ff26024820152604401600060405180830381600087803b15801562001b8657600080fd5b505af115801562001b9b573d6000803e3d6000fd5b5050600180546040517f491cc7c2000000000000000000000000000000000000000000000000000000008152600060048201819052602482018190526044820152606481019290925273ffffffffffffffffffffffffffffffffffffffff16925063491cc7c29150608401600060405180830381600087803b15801562001c2157600080fd5b505af115801562001c36573d6000803e3d6000fd5b505060075460405173ffffffffffffffffffffffffffffffffffffffff90911692507f9181736fce85d2d4cca2e4406f10679302ae5c387180fdb62963af3cd9a24fd69150600090a26001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b15801562001cff57600080fd5b505af115801562001d14573d6000803e3d6000fd5b5050600480546007546040517f078c478100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063078c47819150602401600060405180830381600087803b15801562001d8a57600080fd5b505af115801562001d9f573d6000803e3d6000fd5b5050600154604080518082018252600381527f5053300000000000000000000000000000000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216935063f28dceb3925062001e2b916004016200d125565b600060405180830381600087803b15801562001e4657600080fd5b505af115801562001e5b573d6000803e3d6000fd5b505060075473ffffffffffffffffffffffffffffffffffffffff16915063bf28068b905062001e946002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273c4375b7de8af5a38a93548eb8453a498222c4ff260248201526044015b600060405180830381600087803b1580156200159157600080fd5b600180546040517f491cc7c2000000000000000000000000000000000000000000000000000000008152600481018390526024810183905260006044820152606481019290925273ffffffffffffffffffffffffffffffffffffffff169063491cc7c290608401600060405180830381600087803b15801562001f8357600080fd5b505af115801562001f98573d6000803e3d6000fd5b505060408051678ac7230489e80000815261302d60208201527390f79bf6eb2c4f870365e785982e1f101e93b906935073f39fd6e51aad88f6f4ce6ab8827279cfffb9226692507fd2491a9b4fe81a7cd4511e8b7b7743951b061dad5bed7da8a7795b080ee08c7e910160405180910390a36001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200208a57600080fd5b505af11580156200209f573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e80000928101929092527390f79bf6eb2c4f870365e785982e1f101e93b906602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200213a57600080fd5b505af11580156200214f573d6000803e3d6000fd5b505060055462002196925073ffffffffffffffffffffffffffffffffffffffff1690507390f79bf6eb2c4f870365e785982e1f101e93b906678ac7230489e800006200c76d565b600654620021e69073ffffffffffffffffffffffffffffffffffffffff1673f39fd6e51aad88f6f4ce6ab8827279cfffb9226662000cae678ac7230489e8000068056bc75e2d631000006200d075565b6200228d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002258573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200227e91906200d05b565b678ac7230489e800006200c78a565b62000ead600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743753596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002258573d6000803e3d6000fd5b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200237f57600080fd5b505af115801562002394573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b1580156200240a57600080fd5b505af11580156200241f573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b158015620024a357600080fd5b505af1158015620024b8573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200255357600080fd5b505af115801562002568573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa158015620025f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200261891906200cfc5565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c19386c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200268a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026b091906200d05b565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b620026e66002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff85166024820152604401600060405180830381600087803b1580156200275457600080fd5b505af115801562002769573d6000803e3d6000fd5b5050505062002862600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c19386c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620027df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200280591906200d05b565b6200281a6002678ac7230489e800006200d13a565b6200282690846200d08f565b6040518060400160405280601b81526020017f496e636f7272656374206e657720626f72726f7720616d6f756e7400000000008152506200c89c565b5050565b6000611f4060c86101f4611d4c60405162002881906200cf94565b938452602084019290925260408301526060820152608001604051809103906000f080158015620028b6573d6000803e3d6000fd5b50600180546040517f491cc7c2000000000000000000000000000000000000000000000000000000008152600481019290925260006024830181905260448301819052606483015291925073ffffffffffffffffffffffffffffffffffffffff9091169063491cc7c290608401600060405180830381600087803b1580156200293e57600080fd5b505af115801562002953573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff841692507f0ec6cb7631d36954a05ffd646135bfd9995c71e7fa36d26abb1ad9f24a040ea19150600090a26001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b15801562002a1857600080fd5b505af115801562002a2d573d6000803e3d6000fd5b5050600480546040517f5664cacf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681169382019390935291169250635664cacf9150602401600060405180830381600087803b15801562002aa157600080fd5b505af115801562002ab6573d6000803e3d6000fd5b5050505062002b73600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f3fdb15a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002b2c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b5291906200cfc5565b826040518060600160405280602981526020016201d9be602991396200c8e9565b50565b600254604080517f61d027b3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916361d027b39160048083019260209291908290030181865afa15801562002be7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c0d91906200cfc5565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015291925073ffffffffffffffffffffffffffffffffffffffff169063ca669fa790602401600060405180830381600087803b15801562002c8e57600080fd5b505af115801562002ca3573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b15801562002d1957600080fd5b505af115801562002d2e573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b15801562002db257600080fd5b505af115801562002dc7573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b15801562002e6257600080fd5b505af115801562002e77573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa15801562002f01573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f2791906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b62002f5d6002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b15801562002fcb57600080fd5b505af115801562002fe0573d6000803e3d6000fd5b505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003054573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200307a91906200d05b565b6001549091506301e133809073ffffffffffffffffffffffffffffffffffffffff1663e5d6bf02620030ad83426200d08f565b6040518263ffffffff1660e01b8152600401620030cc91815260200190565b600060405180830381600087803b158015620030e757600080fd5b505af1158015620030fc573d6000803e3d6000fd5b5050505060006b033b2e3c9fd0803ce8000000836002678ac7230489e800006200312791906200d13a565b6200313391906200d01b565b6200313f91906200d13a565b905060006200315782678ac7230489e800006200d08f565b620031649060646200d08f565b90506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f69630b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620031d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620031fc91906200cfc5565b73ffffffffffffffffffffffffffffffffffffffff166342568d44836200322c86678ac7230489e800006200d08f565b620032399060646200d08f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526024820152604401602060405180830381865afa15801562003293573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032b991906200d05b565b60005460045491925073ffffffffffffffffffffffffffffffffffffffff6201000090910481169163eebab8ef916001911686620033016002678ac7230489e800006200d13a565b6200330d91906200d08f565b6200331a9060646200d08f565b6040518463ffffffff1660e01b81526004016200333a939291906200d176565b600060405180830381600087803b1580156200335557600080fd5b505af11580156200336a573d6000803e3d6000fd5b505060075473ffffffffffffffffffffffffffffffffffffffff16915063ca9505e49050620033a36002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260048101919091526064602482018190526000604483015201600060405180830381600087803b1580156200340357600080fd5b505af115801562003418573d6000803e3d6000fd5b50505050620034d5600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200348e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034b491906200d05b565b836040518060600160405280602c81526020016201da54602c91396200c89c565b6005546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152620036439216906370a0823190602401602060405180830381865afa15801562003549573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200356f91906200d05b565b600480546040517f4d778ad100000000000000000000000000000000000000000000000000000000815260649281019290925273ffffffffffffffffffffffffffffffffffffffff1690634d778ad1906024015b602060405180830381865afa158015620035e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200360791906200d05b565b6040518060400160405280601881526020017f64546f6b656e2062616c616e636520696e636f727265637400000000000000008152506200c89c565b620036fc600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620036b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036db91906200d05b565b826040518060600160405280602581526020016201d9e7602591396200c89c565b50505050505050565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200378557600080fd5b505af11580156200379a573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b1580156200381057600080fd5b505af115801562003825573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b158015620038a957600080fd5b505af1158015620038be573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200395957600080fd5b505af11580156200396e573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa158015620039f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003a1e91906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b62003a546002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b15801562003ac257600080fd5b505af115801562003ad7573d6000803e3d6000fd5b50506001546301e13380925073ffffffffffffffffffffffffffffffffffffffff16905063e5d6bf0262003b0c83426200d08f565b6040518263ffffffff1660e01b815260040162003b2b91815260200190565b600060405180830381600087803b15801562003b4657600080fd5b505af115801562003b5b573d6000803e3d6000fd5b505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663788c6bfe6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003bcf573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003bf591906200d05b565b600480546040517f4d778ad1000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925291925062003ce89173ffffffffffffffffffffffffffffffffffffffff1690634d778ad190602401602060405180830381865afa15801562003c75573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003c9b91906200d05b565b8262003cbc6b033b2e3c9fd0803ce8000000678ac7230489e800006200d01b565b62003cc891906200d13a565b6040518060600160405280602381526020016201da0c602391396200c89c565b600480546040517f5427c93800000000000000000000000000000000000000000000000000000000815262003db49273ffffffffffffffffffffffffffffffffffffffff90921691635427c9389162003d4f91678ac7230489e80000910190815260200190565b602060405180830381865afa15801562003d6d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003d9391906200d05b565b6b033b2e3c9fd0803ce800000062003cbc84678ac7230489e800006200d01b565b505050565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b15801562003e3957600080fd5b505af115801562003e4e573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b15801562003ec457600080fd5b505af115801562003ed9573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b15801562003f5d57600080fd5b505af115801562003f72573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200400d57600080fd5b505af115801562004022573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa158015620040ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620040d291906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b620041086002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b1580156200417657600080fd5b505af11580156200418b573d6000803e3d6000fd5b505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620041ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200422591906200d05b565b6001549091506301e133809073ffffffffffffffffffffffffffffffffffffffff1663e5d6bf026200425883426200d08f565b6040518263ffffffff1660e01b81526004016200427791815260200190565b600060405180830381600087803b1580156200429257600080fd5b505af1158015620042a7573d6000803e3d6000fd5b5050505060006b033b2e3c9fd0803ce8000000836002678ac7230489e80000620042d291906200d13a565b620042de91906200d01b565b620042ea91906200d13a565b905060006200430282678ac7230489e800006200d08f565b90506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f69630b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200439a91906200cfc5565b73ffffffffffffffffffffffffffffffffffffffff166342568d4483620043cb6002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526024820152604401602060405180830381865afa15801562004425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200444b91906200d05b565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d41ee0f76040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620044b857600080fd5b505af1158015620044cd573d6000803e3d6000fd5b5050505062004543600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200348e573d6000803e3d6000fd5b620045fc600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663609ae3176040518163ffffffff1660e01b8152600401602060405180830381865afa158015620045b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620045db91906200d05b565b426040518060600160405280602381526020016201daa8602391396200c89c565b6200466e600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620036b5573d6000803e3d6000fd5b620047ba600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630fce70fb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620046e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200470691906200d05b565b60048054604080517fa7a5eccc000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263a7a5eccc9282820192602092908290030181865afa15801562004774573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200479a91906200d05b565b6040518060600160405280602581526020016201da2f602591396200c89c565b505050505050565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200484257600080fd5b505af115801562004857573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b158015620048cd57600080fd5b505af1158015620048e2573d6000803e3d6000fd5b50506001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b1580156200496657600080fd5b505af11580156200497b573d6000803e3d6000fd5b5050600480546040517fbb04b1930000000000000000000000000000000000000000000000000000000081526127109281019290925273ffffffffffffffffffffffffffffffffffffffff16925063bb04b1939150602401600060405180830381600087803b158015620049ee57600080fd5b505af115801562004a03573d6000803e3d6000fd5b5050600154604080518082018252600381527f5053320000000000000000000000000000000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216935063f28dceb3925062004a8f916004016200d125565b600060405180830381600087803b15801562004aaa57600080fd5b505af115801562004abf573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b15801562004b4357600080fd5b505af115801562004b58573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d462915060640162001ee6565b62004c89600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663788c6bfe6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004c50573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004c7691906200d05b565b6b033b2e3c9fd0803ce80000006200c78a565b62004d29600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e941fa786040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004cfb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004d2191906200d05b565b60006200c78a565b62000ead600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ef8d96036040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004d9b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004dc191906200d05b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200c78a565b6001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b15801562004e6857600080fd5b505af115801562004e7d573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e80000928101929092527390f79bf6eb2c4f870365e785982e1f101e93b906602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b15801562004f1857600080fd5b505af115801562004f2d573d6000803e3d6000fd5b5050600180546040517f491cc7c2000000000000000000000000000000000000000000000000000000008152600481018390526024810183905260006044820152606481019290925273ffffffffffffffffffffffffffffffffffffffff16925063491cc7c29150608401600060405180830381600087803b15801562004fb357600080fd5b505af115801562004fc8573d6000803e3d6000fd5b5050604051674563918244f40000815273f39fd6e51aad88f6f4ce6ab8827279cfffb9226692507390f79bf6eb2c4f870365e785982e1f101e93b90691507fd8ae9b9ba89e637bcb66a69ac91e8f688018e81d6f92c57e02226425c8efbdf69060200160405180910390a36001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527390f79bf6eb2c4f870365e785982e1f101e93b906600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b158015620050b357600080fd5b505af1158015620050c8573d6000803e3d6000fd5b5050600480546040517f05fe138b000000000000000000000000000000000000000000000000000000008152674563918244f400009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015273ffffffffffffffffffffffffffffffffffffffff1692506305fe138b91506044016020604051808303816000875af115801562005160573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200518691906200d05b565b50600554620051d69073ffffffffffffffffffffffffffffffffffffffff167390f79bf6eb2c4f870365e785982e1f101e93b90662000cae674563918244f40000678ac7230489e800006200d075565b6006546200522f9073ffffffffffffffffffffffffffffffffffffffff1673f39fd6e51aad88f6f4ce6ab8827279cfffb92266674563918244f4000062000d19678ac7230489e8000068056bc75e2d631000006200d075565b620052e3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620052a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620052c791906200d05b565b62000de6674563918244f40000678ac7230489e800006200d075565b62000ead600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743753596040518163ffffffff1660e01b8152600401602060405180830381865afa158015620052a1573d6000803e3d6000fd5b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b158015620053d557600080fd5b505af1158015620053ea573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b1580156200546057600080fd5b505af115801562005475573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b158015620054f957600080fd5b505af11580156200550e573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b158015620055a957600080fd5b505af1158015620055be573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa15801562005648573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200566e91906200cfc5565b600654909150620056989073ffffffffffffffffffffffffffffffffffffffff168260006200c76d565b60075473ffffffffffffffffffffffffffffffffffffffff1663bf28068b620056cb6002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b1580156200573957600080fd5b505af11580156200574e573d6000803e3d6000fd5b505060065462002b73925073ffffffffffffffffffffffffffffffffffffffff1690508262000cae6002678ac7230489e800006200d13a565b6001546040517f06447d5600000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116906306447d5690602401600060405180830381600087803b1580156200580757600080fd5b505af11580156200581c573d6000803e3d6000fd5b50506001546040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f61081c1500000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116925063c31eb0e09150602401600060405180830381600087803b158015620058ac57600080fd5b505af1158015620058c1573d6000803e3d6000fd5b5050600480546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff29281019290925273ffffffffffffffffffffffffffffffffffffffff16925063cf33d9559150602401600060405180830381600087803b1580156200594657600080fd5b505af11580156200595b573d6000803e3d6000fd5b50506001546040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f61081c1500000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116925063c31eb0e09150602401600060405180830381600087803b158015620059eb57600080fd5b505af115801562005a00573d6000803e3d6000fd5b5050600480546040517f078c478100000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff29281019290925273ffffffffffffffffffffffffffffffffffffffff16925063078c47819150602401600060405180830381600087803b15801562005a8557600080fd5b505af115801562005a9a573d6000803e3d6000fd5b50506001546040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f61081c1500000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116925063c31eb0e09150602401600060405180830381600087803b15801562005b2a57600080fd5b505af115801562005b3f573d6000803e3d6000fd5b5050600480546040517f5664cacf00000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff29281019290925273ffffffffffffffffffffffffffffffffffffffff169250635664cacf9150602401600060405180830381600087803b15801562005bc457600080fd5b505af115801562005bd9573d6000803e3d6000fd5b50506001546040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f61081c1500000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116925063c31eb0e09150602401600060405180830381600087803b15801562005c6957600080fd5b505af115801562005c7e573d6000803e3d6000fd5b5050600480546040517fbb04b19300000000000000000000000000000000000000000000000000000000815260009281019290925273ffffffffffffffffffffffffffffffffffffffff16925063bb04b1939150602401620014f2565b6007546040517fc8cca9e500000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff2600482015273ffffffffffffffffffffffffffffffffffffffff9091169063c8cca9e590602401600060405180830381600087803b15801562005d5b57600080fd5b505af115801562005d70573d6000803e3d6000fd5b5050600154604080518082018252600381527f5053310000000000000000000000000000000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216935063f28dceb3925062005dfc916004016200d125565b600060405180830381600087803b15801562005e1757600080fd5b505af115801562005e2c573d6000803e3d6000fd5b50506001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b15801562005eb057600080fd5b505af115801562005ec5573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d955915060240162001ee6565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b15801562005fa657600080fd5b505af115801562005fbb573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b1580156200603157600080fd5b505af115801562006046573d6000803e3d6000fd5b5050600154604080518082018252600381527f5053340000000000000000000000000000000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216935063f28dceb3925062005dfc916004016200d125565b600154604080518082018252600281527f5a30000000000000000000000000000000000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092169163f28dceb3916200615a916004016200d125565b600060405180830381600087803b1580156200617557600080fd5b505af11580156200618a573d6000803e3d6000fd5b50506001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b1580156200620e57600080fd5b505af115801562006223573d6000803e3d6000fd5b5050600480546040517f5664cacf00000000000000000000000000000000000000000000000000000000815260009281019290925273ffffffffffffffffffffffffffffffffffffffff169250635664cacf915060240162001ee6565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200630057600080fd5b505af115801562006315573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b1580156200638b57600080fd5b505af1158015620063a0573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b1580156200642457600080fd5b505af115801562006439573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b158015620064d457600080fd5b505af1158015620064e9573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa15801562006573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200659991906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b620065cf6002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b1580156200663d57600080fd5b505af115801562006652573d6000803e3d6000fd5b505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620066c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620066ec91906200d05b565b6001549091506301e133809073ffffffffffffffffffffffffffffffffffffffff1663e5d6bf026200671f83426200d08f565b6040518263ffffffff1660e01b81526004016200673e91815260200190565b600060405180830381600087803b1580156200675957600080fd5b505af11580156200676e573d6000803e3d6000fd5b5050505060006b033b2e3c9fd0803ce8000000836002678ac7230489e800006200679991906200d13a565b620067a591906200d01b565b620067b191906200d13a565b9050600081600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663030dbb046040518163ffffffff1660e01b8152600401602060405180830381865afa15801562006824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200684a91906200d05b565b6200685691906200d08f565b905062006911600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620068ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620068f091906200d05b565b826040518060600160405280602581526020016201da2f602591396200c89c565b5050505050565b6000611f4060c86101f4611d4c60405162006933906200cf94565b938452602084019290925260408301526060820152608001604051809103906000f08015801562006968573d6000803e3d6000fd5b506001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015291925073ffffffffffffffffffffffffffffffffffffffff169063ca669fa790602401600060405180830381600087803b158015620069ea57600080fd5b505af1158015620069ff573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b15801562006a7557600080fd5b505af115801562006a8a573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b15801562006b0e57600080fd5b505af115801562006b23573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b15801562006bbe57600080fd5b505af115801562006bd3573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa15801562006c5d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006c8391906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b62006cb96002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b15801562006d2757600080fd5b505af115801562006d3c573d6000803e3d6000fd5b505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562006db0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006dd691906200d05b565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743753596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562006e48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006e6e91906200d05b565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015291925073ffffffffffffffffffffffffffffffffffffffff169063ca669fa790602401600060405180830381600087803b15801562006eef57600080fd5b505af115801562006f04573d6000803e3d6000fd5b5050600480546040517f5664cacf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981169382019390935291169250635664cacf9150602401600060405180830381600087803b15801562006f7857600080fd5b505af115801562006f8d573d6000803e3d6000fd5b50506040517f42568d440000000000000000000000000000000000000000000000000000000081526004810185905260248101849052620015a6925073ffffffffffffffffffffffffffffffffffffffff871691506342568d4490604401602060405180830381865afa15801562007009573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200702f91906200d05b565b60048054604080517f45d31f9d000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff909216926345d31f9d9282820192602092908290030181865afa1580156200709d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620070c391906200d05b565b6040518060400160405280601a81526020017f426f72726f77207261746520646f6573206e6f74206d617463680000000000008152506200c89c565b600254604080517f61d027b3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916361d027b39160048083019260209291908290030181865afa15801562007170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200719691906200cfc5565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015291925073ffffffffffffffffffffffffffffffffffffffff169063ca669fa790602401600060405180830381600087803b1580156200721757600080fd5b505af11580156200722c573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b158015620072a257600080fd5b505af1158015620072b7573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b1580156200733b57600080fd5b505af115801562007350573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b158015620073eb57600080fd5b505af115801562007400573d6000803e3d6000fd5b5050600154600480546040517fca669fa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821692810192909252909116925063ca669fa79150602401600060405180830381600087803b1580156200747857600080fd5b505af11580156200748d573d6000803e3d6000fd5b50506005546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152612710602483015290911692506340c10f199150604401600060405180830381600087803b1580156200750757600080fd5b505af11580156200751c573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa158015620075a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620075cc91906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b620076026002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b1580156200767057600080fd5b505af115801562007685573d6000803e3d6000fd5b505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620076f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200771f91906200d05b565b90506301e1338060006b033b2e3c9fd0803ce8000000836200774b6002678ac7230489e800006200d13a565b6200775791906200d01b565b6200776391906200d13a565b90506000620f42406200777f83678ac7230489e800006200d08f565b6200778b91906200d075565b90506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f69630b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620077fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200782391906200cfc5565b73ffffffffffffffffffffffffffffffffffffffff166342568d4483620f42406200785787678ac7230489e800006200d08f565b6200786391906200d075565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526024820152604401602060405180830381865afa158015620078bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620078e391906200d05b565b60015490915073ffffffffffffffffffffffffffffffffffffffff1663e5d6bf026200791086426200d08f565b6040518263ffffffff1660e01b81526004016200792f91815260200190565b600060405180830381600087803b1580156200794a57600080fd5b505af11580156200795f573d6000803e3d6000fd5b5050600480546005546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8d811694820194909452600095509183169350635427c9389216906370a0823190602401602060405180830381865afa158015620079e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007a0b91906200d05b565b6040518263ffffffff1660e01b815260040162007a2a91815260200190565b602060405180830381865afa15801562007a48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007a6e91906200d05b565b60005460045491925073ffffffffffffffffffffffffffffffffffffffff6201000090910481169163eebab8ef9160019116620f42408862007aba6002678ac7230489e800006200d13a565b62007ac691906200d08f565b62007ad291906200d075565b6040518463ffffffff1660e01b815260040162007af2939291906200d176565b600060405180830381600087803b15801562007b0d57600080fd5b505af115801562007b22573d6000803e3d6000fd5b5050600180546040517f491cc7c2000000000000000000000000000000000000000000000000000000008152600481018390526000602482018190526044820152606481019290925273ffffffffffffffffffffffffffffffffffffffff16925063491cc7c29150608401600060405180830381600087803b15801562007ba857600080fd5b505af115801562007bbd573d6000803e3d6000fd5b505060075473ffffffffffffffffffffffffffffffffffffffff1691507fef3653ded679720ab04913b6f3820be7cedc8286d42ff5dd8dff17e91bd2964c905062007c0c83620f42406200d075565b60405190815260200160405180910390a260075473ffffffffffffffffffffffffffffffffffffffff1663ca9505e462007c506002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915260006024820152620f42406044820152606401600060405180830381600087803b15801562007cb257600080fd5b505af115801562007cc7573d6000803e3d6000fd5b5050505062007d84600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562007d3d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007d6391906200d05b565b846040518060600160405280602c81526020016201da54602c91396200c89c565b6005546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a8116600483015262007e5c9216906370a0823190602401602060405180830381865afa15801562007df8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007e1e91906200d05b565b60006040518060400160405280601e81526020017f64546f6b656e2072656d61696e7320696e2074686520747265617375727900008152506200c89c565b62007f15600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562007ece573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007ef491906200d05b565b836040518060600160405280602581526020016201d9e7602591396200c89c565b5050505050505050565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b15801562007f9f57600080fd5b505af115801562007fb4573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b1580156200802a57600080fd5b505af11580156200803f573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b158015620080c357600080fd5b505af1158015620080d8573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200817357600080fd5b505af115801562008188573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa15801562008212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200823891906200cfc5565b600180546040517f491cc7c2000000000000000000000000000000000000000000000000000000008152600060048201819052602482018190526044820152606481019290925291925073ffffffffffffffffffffffffffffffffffffffff9091169063491cc7c290608401600060405180830381600087803b158015620082bf57600080fd5b505af1158015620082d4573d6000803e3d6000fd5b505060075473ffffffffffffffffffffffffffffffffffffffff80851693501690507f312a5e5e1079f5dda4e95dbbd0b908b291fd5b992ef22073643ab691572c5b526200832c6002678ac7230489e800006200d13a565b60405190815260200160405180910390a360075473ffffffffffffffffffffffffffffffffffffffff1663bf28068b620083706002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff841660248201526044015b600060405180830381600087803b158015620083df57600080fd5b505af115801562006911573d6000803e3d6000fd5b60008054610100900460ff1615620084155750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620085595760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c6564000000000000000000000000000000000000000000000000000082840152825180830384018152606083019093526000929091620084bd917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016200d1dc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052620084f7916200d226565b6000604051808303816000865af19150503d806000811462008536576040519150601f19603f3d011682016040523d82523d6000602084013e6200853b565b606091505b50915050808060200190518101906200855591906200d244565b9150505b919050565b600180546040517f491cc7c2000000000000000000000000000000000000000000000000000000008152600060048201819052602482018190526044820152606481019290925273ffffffffffffffffffffffffffffffffffffffff169063491cc7c290608401600060405180830381600087803b158015620085e057600080fd5b505af1158015620085f5573d6000803e3d6000fd5b505050507fd7a183c9fe85b604c25d54bd676e0866f6c13bcca9fb9b0850213de118fdc99c6127106040516200862d91815260200190565b60405180910390a16001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b158015620086b557600080fd5b505af1158015620086ca573d6000803e3d6000fd5b5050600480546040517fbb04b1930000000000000000000000000000000000000000000000000000000081526127109281019290925273ffffffffffffffffffffffffffffffffffffffff16925063bb04b1939150602401600060405180830381600087803b1580156200873d57600080fd5b505af115801562008752573d6000803e3d6000fd5b5050505062000ead600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ef8d96036040518163ffffffff1660e01b8152600401602060405180830381865afa158015620087c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620087ee91906200d05b565b6127106040518060600160405280602881526020016201da80602891396200c89c565b600254604080517f61d027b3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916361d027b39160048083019260209291908290030181865afa15801562008882573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620088a891906200cfc5565b6001546040517f06447d560000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015291925073ffffffffffffffffffffffffffffffffffffffff16906306447d5690602401600060405180830381600087803b1580156200892957600080fd5b505af11580156200893e573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b158015620089b457600080fd5b505af1158015620089c9573d6000803e3d6000fd5b5050600480546040517fb6ac642a00000000000000000000000000000000000000000000000000000000815260329281019290925273ffffffffffffffffffffffffffffffffffffffff16925063b6ac642a9150602401600060405180830381600087803b15801562008a3b57600080fd5b505af115801562008a50573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562008abf57600080fd5b505af115801562008ad4573d6000803e3d6000fd5b50506001546040517f06447d5600000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff90911692506306447d569150602401600060405180830381600087803b15801562008b5857600080fd5b505af115801562008b6d573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b15801562008c0857600080fd5b505af115801562008c1d573d6000803e3d6000fd5b50506006546040517f70a0823100000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb9226660048201526000935073ffffffffffffffffffffffffffffffffffffffff90911691506370a0823190602401602060405180830381865afa15801562008ca7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008ccd91906200d05b565b600480546040517f05fe138b000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015291925073ffffffffffffffffffffffffffffffffffffffff909116906305fe138b906044016020604051808303816000875af115801562008d66573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008d8c91906200d05b565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562008df857600080fd5b505af115801562008e0d573d6000803e3d6000fd5b505060065462008e91925073ffffffffffffffffffffffffffffffffffffffff1690508361271062008e49678ac7230489e8000060326200d01b565b62008e5591906200d13a565b6040518060400160405280601d81526020017f496e636f72726563742062616c616e636520696e2074726561737572790000008152506200c962565b600654620028629073ffffffffffffffffffffffffffffffffffffffff1673f39fd6e51aad88f6f4ce6ab8827279cfffb9226661271062008edd678ac7230489e800006126de6200d01b565b62008ee991906200d13a565b62008ef590856200d08f565b6040518060400160405280601a81526020017f496e636f72726563742062616c616e636520666f7220757365720000000000008152506200c962565b600154604080518082018252600381527f5053330000000000000000000000000000000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092169163f28dceb39162008fb9916004016200d125565b600060405180830381600087803b15801562008fd457600080fd5b505af115801562008fe9573d6000803e3d6000fd5b50506001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b1580156200906d57600080fd5b505af115801562009082573d6000803e3d6000fd5b5050600480546040517fb6ac642a00000000000000000000000000000000000000000000000000000000815260659281019290925273ffffffffffffffffffffffffffffffffffffffff16925063b6ac642a915060240162001ee6565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200915f57600080fd5b505af115801562009174573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b158015620091ea57600080fd5b505af1158015620091ff573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b1580156200928357600080fd5b505af115801562009298573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200933357600080fd5b505af115801562009348573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa158015620093d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620093f891906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b6200942e6002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b1580156200949c57600080fd5b505af1158015620094b1573d6000803e3d6000fd5b50678ac7230489e80000925060009150620094d090506002836200d13a565b620094dc90836200d075565b90506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f69630b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200954e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200957491906200cfc5565b6040517f42568d44000000000000000000000000000000000000000000000000000000008152600481018590526024810184905273ffffffffffffffffffffffffffffffffffffffff91909116906342568d4490604401602060405180830381865afa158015620095e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200960f91906200d05b565b9050620015a681600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562009684573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620096aa91906200d05b565b6040518060400160405280601881526020017f426f72726f77207261746520697320696e636f727265637400000000000000008152506200c89c565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200976657600080fd5b505af11580156200977b573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b158015620097f157600080fd5b505af115801562009806573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b1580156200988a57600080fd5b505af11580156200989f573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200993a57600080fd5b505af11580156200994f573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa158015620099d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620099ff91906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b62009a356002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b15801562009aa357600080fd5b505af115801562009ab8573d6000803e3d6000fd5b5050600180546040517f491cc7c2000000000000000000000000000000000000000000000000000000008152600481018390526000602482018190526044820152606481019290925273ffffffffffffffffffffffffffffffffffffffff16925063491cc7c29150608401600060405180830381600087803b15801562009b3e57600080fd5b505af115801562009b53573d6000803e3d6000fd5b505060075473ffffffffffffffffffffffffffffffffffffffff1691507f2fe77b1c99aca6b022b8efc6e3e8dd1b48b30748709339b65c50ef3263443e09905062009ba86002678ac7230489e800006200d13a565b604080519182526001602083015260009082015260600160405180910390a260075473ffffffffffffffffffffffffffffffffffffffff1663ca9505e462009bfa6002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260048101919091526001602482015260006044820152606401620083c4565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b15801562009cc557600080fd5b505af115801562009cda573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b15801562009d5057600080fd5b505af115801562009d65573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b15801562009de957600080fd5b505af115801562009dfe573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b15801562009e9957600080fd5b505af115801562009eae573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa15801562009f38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009f5e91906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b62009f946002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b1580156200a00257600080fd5b505af11580156200a017573d6000803e3d6000fd5b505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200a08b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200a0b191906200d05b565b6001549091506301e133809073ffffffffffffffffffffffffffffffffffffffff1663e5d6bf026200a0e483426200d08f565b6040518263ffffffff1660e01b81526004016200a10391815260200190565b600060405180830381600087803b1580156200a11e57600080fd5b505af11580156200a133573d6000803e3d6000fd5b5050505060006b033b2e3c9fd0803ce8000000836002678ac7230489e800006200a15e91906200d13a565b6200a16a91906200d01b565b6200a17691906200d13a565b905060006200a18e82678ac7230489e800006200d08f565b60005460045491925073ffffffffffffffffffffffffffffffffffffffff6201000090910481169163eebab8ef9160019116856200a1d66002678ac7230489e800006200d13a565b6200a1e291906200d08f565b6040518463ffffffff1660e01b81526004016200a202939291906200d176565b600060405180830381600087803b1580156200a21d57600080fd5b505af11580156200a232573d6000803e3d6000fd5b505060075473ffffffffffffffffffffffffffffffffffffffff16915063ca9505e490506200a26b6002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260048101919091526064602482018190526000604483015201600060405180830381600087803b1580156200a2cb57600080fd5b505af11580156200a2e0573d6000803e3d6000fd5b50505050620069116305f5e100678ac7230489e80000836b033b2e3c9fd0803ce80000006200a31091906200d01b565b6200a31c91906200d13a565b6200a32891906200d13a565b6305f5e100600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663788c6bfe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200a39b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200a3c191906200d05b565b6200a3cd91906200d13a565b6040518060600160405280602c81526020016201da54602c91396200c89c565b600254604080517f61d027b3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916361d027b39160048083019260209291908290030181865afa1580156200a45e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200a48491906200cfc5565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015291925073ffffffffffffffffffffffffffffffffffffffff169063ca669fa790602401600060405180830381600087803b1580156200a50557600080fd5b505af11580156200a51a573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b1580156200a59057600080fd5b505af11580156200a5a5573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b1580156200a62957600080fd5b505af11580156200a63e573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200a6d957600080fd5b505af11580156200a6ee573d6000803e3d6000fd5b505050506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200a762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200a78891906200d05b565b600154600480546040517fca669fa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169281019290925292935091169063ca669fa790602401600060405180830381600087803b1580156200a7fe57600080fd5b505af11580156200a813573d6000803e3d6000fd5b50506005546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301526024820186905290911692506340c10f199150604401600060405180830381600087803b1580156200a88c57600080fd5b505af11580156200a8a1573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa1580156200a92b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200a95191906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b6200a9876002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b1580156200a9f557600080fd5b505af11580156200aa0a573d6000803e3d6000fd5b505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200aa7e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200aaa491906200d05b565b6001549091506301e133809073ffffffffffffffffffffffffffffffffffffffff1663e5d6bf026200aad783426200d08f565b6040518263ffffffff1660e01b81526004016200aaf691815260200190565b600060405180830381600087803b1580156200ab1157600080fd5b505af11580156200ab26573d6000803e3d6000fd5b5050600480546005546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b811694820194909452600095509183169350635427c9389216906370a0823190602401602060405180830381865afa1580156200abac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200abd291906200d05b565b6040518263ffffffff1660e01b81526004016200abf191815260200190565b602060405180830381865afa1580156200ac0f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200ac3591906200d05b565b905060006b033b2e3c9fd0803ce8000000846200ac5c6002678ac7230489e800006200d13a565b6200ac6891906200d01b565b6200ac7491906200d13a565b905060006200ac856002846200d13a565b6200ac9983678ac7230489e800006200d08f565b6200aca591906200d075565b90506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f69630b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200ad17573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200ad3d91906200cfc5565b6040517f42568d4400000000000000000000000000000000000000000000000000000000815260048101849052678ac7230489e80000602482015273ffffffffffffffffffffffffffffffffffffffff91909116906342568d4490604401602060405180830381865afa1580156200adb9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200addf91906200d05b565b60005460045491925073ffffffffffffffffffffffffffffffffffffffff6201000090910481169163eebab8ef91600191166200ae266002678ac7230489e800006200d13a565b6040518463ffffffff1660e01b81526004016200ae46939291906200d176565b600060405180830381600087803b1580156200ae6157600080fd5b505af11580156200ae76573d6000803e3d6000fd5b505060075473ffffffffffffffffffffffffffffffffffffffff16915063ca9505e490506200aeaf6002678ac7230489e800006200d13a565b60006200aebe6002896200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152600481019390935260248301919091526044820152606401600060405180830381600087803b1580156200af1d57600080fd5b505af11580156200af32573d6000803e3d6000fd5b505050506200afa8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe14112d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200348e573d6000803e3d6000fd5b6005546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b811660048301526200b0989216906370a0823190602401602060405180830381865afa1580156200b01c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200b04291906200d05b565b60045473ffffffffffffffffffffffffffffffffffffffff16634d778ad16200b06d6002896200d13a565b6200b07990896200d075565b6040518263ffffffff1660e01b8152600401620035c391815260200190565b6200b10a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620036b5573d6000803e3d6000fd5b505050505050505050565b6001546040517f06447d560000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff909116906306447d5690602401600060405180830381600087803b1580156200b19557600080fd5b505af11580156200b1aa573d6000803e3d6000fd5b50506003546040517f4910832f0000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169250634910832f9150602401600060405180830381600087803b1580156200b22e57600080fd5b505af11580156200b243573d6000803e3d6000fd5b505060048054604080517f8456cb59000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169450638456cb599350808301926000929182900301818387803b1580156200b2b157600080fd5b505af11580156200b2c6573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200b33557600080fd5b505af11580156200b34a573d6000803e3d6000fd5b50506001546040517f06447d5600000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff90911692506306447d569150602401600060405180830381600087803b1580156200b3ce57600080fd5b505af11580156200b3e3573d6000803e3d6000fd5b5050600154604080518082018252601081527f5061757361626c653a2070617573656400000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216935063f28dceb392506200b46f916004016200d125565b600060405180830381600087803b1580156200b48a57600080fd5b505af11580156200b49f573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e80000928101929092527390f79bf6eb2c4f870365e785982e1f101e93b906602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200b53a57600080fd5b505af11580156200b54f573d6000803e3d6000fd5b5050600154604080518082018252601081527f5061757361626c653a2070617573656400000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216935063f28dceb392506200b5db916004016200d125565b600060405180830381600087803b1580156200b5f657600080fd5b505af11580156200b60b573d6000803e3d6000fd5b5050600480546040517f05fe138b000000000000000000000000000000000000000000000000000000008152674563918244f40000928101929092527390f79bf6eb2c4f870365e785982e1f101e93b906602483015273ffffffffffffffffffffffffffffffffffffffff1692506305fe138b91506044016020604051808303816000875af11580156200b6a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200b6c991906200d05b565b50600154604080518082018252601081527f5061757361626c653a2070617573656400000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092169163f28dceb3916200b752916004016200d125565b600060405180830381600087803b1580156200b76d57600080fd5b505af11580156200b782573d6000803e3d6000fd5b5050600480546040517fbf28068b0000000000000000000000000000000000000000000000000000000081526001928101929092527390f79bf6eb2c4f870365e785982e1f101e93b906602483015273ffffffffffffffffffffffffffffffffffffffff16925063bf28068b9150604401600060405180830381600087803b1580156200b80e57600080fd5b505af11580156200b823573d6000803e3d6000fd5b5050600154604080518082018252601081527f5061757361626c653a2070617573656400000000000000000000000000000000602082015290517ff28dceb300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216935063f28dceb392506200b8af916004016200d125565b600060405180830381600087803b1580156200b8ca57600080fd5b505af11580156200b8df573d6000803e3d6000fd5b5050600480546040517fca9505e4000000000000000000000000000000000000000000000000000000008152600192810192909252600060248301819052604483015273ffffffffffffffffffffffffffffffffffffffff16925063ca9505e49150606401620014f2565b6200b9bc600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a4e8273e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004cfb573d6000803e3d6000fd5b600180546040517f491cc7c2000000000000000000000000000000000000000000000000000000008152600481019290925260006024830181905260448301819052606483015273ffffffffffffffffffffffffffffffffffffffff169063491cc7c290608401600060405180830381600087803b1580156200ba3e57600080fd5b505af11580156200ba53573d6000803e3d6000fd5b505060075460405173ffffffffffffffffffffffffffffffffffffffff90911692507fe076020e7eac3915d33aec40c24f95e73eb6c9921ff89747d50aa8fd934d2c019150600090a26001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200bb1c57600080fd5b505af11580156200bb31573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b1580156200bba757600080fd5b505af11580156200bbbc573d6000803e3d6000fd5b505050506200bc60600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a4e8273e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200bc32573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200bc5891906200d05b565b60016200c78a565b600480546007546040517f2e97ca2100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216938101939093526200bd0892911690632e97ca21906024015b602060405180830381865afa1580156200bcdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200bd0291906200d244565b6200cb1d565b600480546007546040517f3e163df000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935262000ead92911690633e163df0906024016200bcbe565b62000ead600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a7a5eccc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004c50573d6000803e3d6000fd5b6001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200be5d57600080fd5b505af11580156200be72573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200bf0d57600080fd5b505af11580156200bf22573d6000803e3d6000fd5b505060045473ffffffffffffffffffffffffffffffffffffffff169150637dfc6afe90506200bf5b678ac7230489e8000060026200d01b565b6040518263ffffffff1660e01b81526004016200bf7a91815260200190565b600060405180830381600087803b1580156200bf9557600080fd5b505af11580156200bfaa573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b1580156200c02e57600080fd5b505af11580156200c043573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e80000928101929092527390f79bf6eb2c4f870365e785982e1f101e93b906602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200c0de57600080fd5b505af11580156200c0f3573d6000803e3d6000fd5b50506005546040517f70a082310000000000000000000000000000000000000000000000000000000081527390f79bf6eb2c4f870365e785982e1f101e93b906600482015262000ead935073ffffffffffffffffffffffffffffffffffffffff90911691506370a0823190602401602060405180830381865afa1580156200c17f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200c1a591906200d05b565b62000de66002678ac7230489e800006200d13a565b6001546040517fca669fa70000000000000000000000000000000000000000000000000000000081527370997970c51812dc3a010c7d01b50e0d17dc79c8600482015273ffffffffffffffffffffffffffffffffffffffff9091169063ca669fa790602401600060405180830381600087803b1580156200c23a57600080fd5b505af11580156200c24f573d6000803e3d6000fd5b5050600480546007546040517fcf33d95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182169381019390935216925063cf33d9559150602401600060405180830381600087803b1580156200c2c557600080fd5b505af11580156200c2da573d6000803e3d6000fd5b50506001546040517fca669fa700000000000000000000000000000000000000000000000000000000815273f39fd6e51aad88f6f4ce6ab8827279cfffb92266600482015273ffffffffffffffffffffffffffffffffffffffff909116925063ca669fa79150602401600060405180830381600087803b1580156200c35e57600080fd5b505af11580156200c373573d6000803e3d6000fd5b5050600480546040517f9aa5d462000000000000000000000000000000000000000000000000000000008152678ac7230489e800009281019290925273f39fd6e51aad88f6f4ce6ab8827279cfffb92266602483015261302d604483015273ffffffffffffffffffffffffffffffffffffffff169250639aa5d4629150606401600060405180830381600087803b1580156200c40e57600080fd5b505af11580156200c423573d6000803e3d6000fd5b50506007546040517fe958b70400000000000000000000000000000000000000000000000000000000815273c4375b7de8af5a38a93548eb8453a498222c4ff260048201526000935073ffffffffffffffffffffffffffffffffffffffff909116915063e958b70490602401602060405180830381865afa1580156200c4ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200c4d391906200cfc5565b60075490915073ffffffffffffffffffffffffffffffffffffffff1663bf28068b6200c5096002678ac7230489e800006200d13a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481019190915273ffffffffffffffffffffffffffffffffffffffff84166024820152604401600060405180830381600087803b1580156200c57757600080fd5b505af11580156200c58c573d6000803e3d6000fd5b505060015462ed4e00925073ffffffffffffffffffffffffffffffffffffffff16905063e5d6bf026200c5c083426200d08f565b6040518263ffffffff1660e01b81526004016200c5df91815260200190565b600060405180830381600087803b1580156200c5fa57600080fd5b505af11580156200c60f573d6000803e3d6000fd5b505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166345d31f9d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200c683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200c6a991906200d05b565b905060006200c6f96b033b2e3c9fd0803ce80000006301e133806200c6cf86866200d01b565b6200c6db91906200d13a565b6200c6f3906b033b2e3c9fd0803ce80000006200d08f565b6200cb95565b9050620015a6600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630fce70fb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620068ca573d6000803e3d6000fd5b62003db4838383604051806020016040528060008152506200c962565b80821462002862577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200c8189060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e60408201527f745d000000000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8816040516200c85191906200d268565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8826040516200c88a91906200d2b4565b60405180910390a1620028626200ccc9565b81831462003db4577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583816040516200c8d591906200d2f2565b60405180910390a162003db483836200c78a565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462003db4577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583816040516200c94e91906200d2f2565b60405180910390a162003db483836200ce4c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152600091908616906370a0823190602401602060405180830381865afa1580156200c9d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200c9f991906200d05b565b90508281146200cb11577f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f828673ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200ca71573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526200cab991908101906200d36a565b6040516020016200cacc9291906200d441565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526200cb089187906200d4c7565b60405180910390a15b6200691181846200c78a565b8062002b73577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200cb839060208082526017908201527f4572726f723a20417373657274696f6e204661696c6564000000000000000000604082015260600190565b60405180910390a162002b736200ccc9565b60008215806200cba3575081155b156200cbb2575060006200ccc3565b816200cbcc60026b033b2e3c9fd0803ce80000006200d13a565b6200cbf8907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200d075565b6200cc0491906200d13a565b8311156040518060400160405280600281526020017f4d31000000000000000000000000000000000000000000000000000000000000815250906200cc81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200cc7891906200d125565b60405180910390fd5b506b033b2e3c9fd0803ce80000006200cc9c6002826200d13a565b6200cca884866200d01b565b6200ccb491906200d08f565b6200ccc091906200d13a565b90505b92915050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156200ce1e5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c656400000000000000000000000000000000000000000000000000009282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc490608001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526200cd9b92916020016200d1dc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526200cdd5916200d226565b6000604051808303816000865af19150503d80600081146200ce14576040519150601f19603f3d011682016040523d82523d6000602084013e6200ce19565b606091505b505050505b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462002862577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506040516200cf069060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b61646460408201527f726573735d000000000000000000000000000000000000000000000000000000606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f816040516200cf3f91906200d501565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f826040516200c88a91906200d563565b617a51806200d5a283390190565b617eb98062014ff383390190565b610b12806201ceac83390190565b73ffffffffffffffffffffffffffffffffffffffff8116811462002b7357600080fd5b6000602082840312156200cfd857600080fd5b81516200cfe5816200cfa2565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200d056576200d0566200cfec565b500290565b6000602082840312156200d06e57600080fd5b5051919050565b6000828210156200d08a576200d08a6200cfec565b500390565b600082198211156200d0a5576200d0a56200cfec565b500190565b60005b838110156200d0c75781810151838201526020016200d0ad565b83811115620015a65750506000910152565b600081518084526200d0f38160208601602086016200d0aa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006200ccc060208301846200d0d9565b6000826200d171577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60608101600b85106200d1b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b93815273ffffffffffffffffffffffffffffffffffffffff92909216602083015260409091015290565b7fffffffff0000000000000000000000000000000000000000000000000000000083168152600082516200d2188160048501602087016200d0aa565b919091016004019392505050565b600082516200d23a8184602087016200d0aa565b9190910192915050565b6000602082840312156200d25757600080fd5b815180151581146200cfe557600080fd5b6040815260006200d2a660408301600a81527f2020457870656374656400000000000000000000000000000000000000000000602082015260400190565b905082602083015292915050565b6040815260006200d2a660408301600a81527f2020202041637475616c00000000000000000000000000000000000000000000602082015260400190565b60408152600560408201527f4572726f7200000000000000000000000000000000000000000000000000000060608201526080602082015260006200ccc060808301846200d0d9565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156200d37d57600080fd5b815167ffffffffffffffff808211156200d39657600080fd5b818401915084601f8301126200d3ab57600080fd5b8151818111156200d3c0576200d3c06200d33b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156200d409576200d4096200d33b565b816040528281528760208487010111156200d42357600080fd5b6200d4368360208301602088016200d0aa565b979650505050505050565b600083516200d4558184602088016200d0aa565b7f496e636f7272656374200000000000000000000000000000000000000000000090830190815283516200d49181600a8401602088016200d0aa565b7f2062616c616e6365206f6e206163636f756e743a200000000000000000000000600a9290910191820152601f01949350505050565b6040815260006200d4dc60408301856200d0d9565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b6040815260006200d53f60408301600a81527f2020457870656374656400000000000000000000000000000000000000000000602082015260400190565b905073ffffffffffffffffffffffffffffffffffffffff8316602083015292915050565b6040815260006200d53f60408301600a81527f2020202041637475616c0000000000000000000000000000000000000000000060208201526040019056fe60806040526000805461ff01600160b01b031916757109709ecfa91a80626ff3989d68f67f5b1dd12d00011790553480156200003a57600080fd5b506040805161018081019091526000908060c081018060018152604080518082018252600381526244414960e81b6020828101919091528301526012908201526305f5e100606082015260800160018152602001600081525081526020016040518060c001604052806002600a811115620000b957620000b962000b78565b815260408051808201825260048152635553444360e01b6020828101919091528301526006908201526305f5e100606082015260800160018152602001600081525081526020016040518060c001604052806003600a81111562000121576200012162000b78565b815260408051808201825260048152630ae8aa8960e31b602082810191909152830152601290820152644a817c8000606082015260800160028152602001600081525081526020016040518060c001604052806004600a8111156200018a576200018a62000b78565b815260408051808201825260048152634c494e4b60e01b6020828101919091528301526012908201526359682f00606082015260800160018152602001600081525081526020016040518060c001604052806005600a811115620001f257620001f262000b78565b815260408051808201825260048152631554d11560e21b602082810191909152830152601290820152633b023380606082015260800160018152602001600081525081526020016040518060c001604052806006600a8111156200025a576200025a62000b78565b815260408051808201825260058152640e6e88aa8960db1b602082810191909152830152601290820152644cd588640060608201526080016003815260200160009052905260408051610140810190915290915060009080608081018060078152602001604051806040016040528060048152602001636344414960e01b8152508152602001601260ff1681526020016305f5e100815260200160048081111562000309576200030962000b78565b8152602001600181525081526020016040518060c001604052806008600a81111562000339576200033962000b78565b81526040805180820182526005815264635553444360d81b6020828101919091528301526006908201526305f5e100606082015260800160048152602001600281525081526020016040518060c001604052806009600a811115620003a257620003a262000b78565b8152604080518082018252600581526418d554d11560da1b602082810191909152830152601290820152633b023380606082015260800160048152602001600581525081526020016040518060c00160405280600a808111156200040a576200040a62000b78565b81526040805180820182526005815264634c494e4b60d81b6020828101919091528301526012908201526359682f00606082015260800160048152602001600490529052905060005b600681101562000496576200048183826006811062000476576200047662000b8e565b6020020151620004db565b806200048d8162000ba4565b91505062000453565b5060005b6004811015620004d257620004bd82826004811062000476576200047662000b8e565b80620004c98162000ba4565b9150506200049a565b50505062000d14565b6000600282608001516004811115620004f857620004f862000b78565b14156200054e576040516200050d9062000a8c565b604051809103906000f0801580156200052a573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b03831617905590506200071e565b60038260800151600481111562000569576200056962000b78565b1415620005a4576040516200057e9062000a9a565b604051809103906000f0801580156200059b573d6000803e3d6000fd5b5090506200071e565b600182608001516004811115620005bf57620005bf62000b78565b1415620005f157816020015182602001518360400151604051620005e39062000aa8565b6200057e9392919062000c1e565b6004826080015160048111156200060c576200060c62000b78565b1415620006be576000600260008460a00151600a81111562000632576200063262000b78565b600a81111562000646576200064662000b78565b815260200190815260200160002060009054906101000a90046001600160a01b0316905082602001518360200151846040015183604051620006889062000ab6565b62000697949392919062000c5b565b604051809103906000f080158015620006b4573d6000803e3d6000fd5b509150506200071e565b60405162461bcd60e51b815260206004820152602b60248201527f74657374546f6b656e53756974653a204372656174696e6720756e6b6e6f776e60448201526a20746f6b656e207479706560a81b606482015260840160405180910390fd5b60005460208301516040516318caf8e360e31b8152620100009092046001600160a01b03169163c657c718916200075b9185919060040162000ca9565b600060405180830381600087803b1580156200077657600080fd5b505af11580156200078b573d6000803e3d6000fd5b50505050600082606001516008604051620007a69062000ac4565b91825260ff166020820152604001604051809103906000f080158015620007d1573d6000803e3d6000fd5b50905081600260008560000151600a811115620007f257620007f262000b78565b600a81111562000806576200080662000b78565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260600151600560008560000151600a8111156200085a576200085a62000b78565b600a8111156200086e576200086e62000b78565b8152602080820192909252604090810160009081209390935585516001600160a01b03861684526008909252909120805460ff1916600183600a811115620008ba57620008ba62000b78565b02179055508260800151600360008560000151600a811115620008e157620008e162000b78565b600a811115620008f557620008f562000b78565b81526020810191909152604001600020805460ff1916600183600481111562000922576200092262000b78565b0217905550604080518082019091526001600160a01b0380841682528281166020808401918252600780546001810182556000918252945160029095027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810180549686166001600160a01b031997881617905592517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c689909301805493909416929094169190911790915584015184519091600491600a811115620009eb57620009eb62000b78565b600a811115620009ff57620009ff62000b78565b8152602001908152602001600020908051906020019062000a2292919062000ad2565b5080600660008560000151600a81111562000a415762000a4162000b78565b600a81111562000a555762000a5562000b78565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550505050565b610ab1806200285183390190565b611224806200330283390190565b611758806200452683390190565b6117098062005c7e83390190565b6106ca806200738783390190565b82805462000ae09062000cd7565b90600052602060002090601f01602090048101928262000b04576000855562000b4f565b82601f1062000b1f57805160ff191683800117855562000b4f565b8280016001018555821562000b4f579182015b8281111562000b4f57825182559160200191906001019062000b32565b5062000b5d92915062000b61565b5090565b5b8082111562000b5d576000815560010162000b62565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060001982141562000bc757634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815180845260005b8181101562000bf65760208185018101518683018201520162000bd8565b8181111562000c09576000602083870101525b50601f01601f19169290920160200192915050565b60608152600062000c33606083018662000bce565b828103602084015262000c47818662000bce565b91505060ff83166040830152949350505050565b60808152600062000c70608083018762000bce565b828103602084015262000c84818762000bce565b60ff95909516604084015250506001600160a01b039190911660609091015292915050565b6001600160a01b038316815260406020820181905260009062000ccf9083018462000bce565b949350505050565b600181811c9082168062000cec57607f821691505b6020821081141562000d0e57634e487b7160e01b600052602260045260246000fd5b50919050565b611b2d8062000d246000396000f3fe6080604052600436106101635760003560e01c80638eb86e8b116100c0578063c6c3bbe611610074578063d051a62211610059578063d051a62214610490578063eebab8ef146104b0578063fa7626d4146104d057600080fd5b8063c6c3bbe614610433578063c74912d21461045357600080fd5b80639b140a85116100a55780639b140a85146103e6578063b36ba20814610406578063ba414fa61461040e57600080fd5b80638eb86e8b1461038357806398cdaadf146103a357600080fd5b80636a72bde71161011757806388327863116100fc578063883278631461030857806388f776a2146103365780638a3177a31461035657600080fd5b80636a72bde7146102c45780636ca42ae3146102e657600080fd5b8063440864fa11610148578063440864fa146102025780634b57b0be1461022f57806367b426451461028157600080fd5b806304bc3b1c1461016f57806310c7f0b9146101b557600080fd5b3661016a57005b600080fd5b34801561017b57600080fd5b5061019f61018a3660046116f6565b60086020526000908152604090205460ff1681565b6040516101ac9190611742565b60405180910390f35b3480156101c157600080fd5b506101d56101d036600461175c565b6104ea565b6040805173ffffffffffffffffffffffffffffffffffffffff9384168152929091166020830152016101ac565b34801561020e57600080fd5b5061022261021d366004611784565b610530565b6040516101ac91906117cb565b34801561023b57600080fd5b5060015461025c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ac565b34801561028d57600080fd5b5061025c61029c366004611784565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b3480156102d057600080fd5b506102e46102df36600461181c565b6105ca565b005b3480156102f257600080fd5b506102fb610730565b6040516101ac919061186b565b34801561031457600080fd5b506103286103233660046118d4565b6107b5565b6040519081526020016101ac565b34801561034257600080fd5b506102e461035136600461190b565b610888565b34801561036257600080fd5b50610328610371366004611784565b60056020526000908152604090205481565b34801561038f57600080fd5b506102e461039e366004611954565b6108b9565b3480156103af57600080fd5b5061025c6103be366004611784565b60066020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b3480156103f257600080fd5b506102e4610401366004611993565b610a73565b6102e4610b22565b34801561041a57600080fd5b50610423610ba0565b60405190151581526020016101ac565b34801561043f57600080fd5b506102e461044e3660046119b3565b610d00565b34801561045f57600080fd5b5061048361046e366004611784565b60036020526000908152604090205460ff1681565b6040516101ac91906119d3565b34801561049c57600080fd5b506103286104ab36600461190b565b610daf565b3480156104bc57600080fd5b506102e46104cb366004611954565b610e8b565b3480156104dc57600080fd5b506000546104239060ff1681565b600781815481106104fa57600080fd5b60009182526020909120600290910201805460019091015473ffffffffffffffffffffffffffffffffffffffff91821692501682565b60046020526000908152604090208054610549906119e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610575906119e7565b80156105c25780601f10610597576101008083540402835291602001916105c2565b820191906000526020600020905b8154815290600101906020018083116105a557829003601f168201915b505050505081565b6000546040517fca669fa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152620100009092049091169063ca669fa790602401600060405180830381600087803b15801561063e57600080fd5b505af1158015610652573d6000803e3d6000fd5b505050506002600085600a81111561066c5761066c611713565b600a81111561067d5761067d611713565b8152602081019190915260409081016000205490517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490529091169063095ea7b3906044016020604051808303816000875af1158015610705573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107299190611a3b565b5050505050565b60606007805480602002602001604051908101604052809291908181526020016000905b828210156107ac5760008481526020908190206040805180820190915260028502909101805473ffffffffffffffffffffffffffffffffffffffff908116835260019182015416828401529083529092019101610754565b50505050905090565b60006002600084600a8111156107cd576107cd611713565b600a8111156107de576107de611713565b8152602081019190915260409081016000205490517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152909116906370a0823190602401602060405180830381865afa15801561085d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108819190611a5d565b9392505050565b6108b48383837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105ca565b505050565b60016003600085600a8111156108d1576108d1611713565b600a8111156108e2576108e2611713565b815260208101919091526040016000205460ff16600481111561090757610907611713565b14610999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f74657374546f6b656e53756974653a20547279696e6720746f206275726e206160448201527f206e6f6e2d6e6f726d616c20746f6b656e00000000000000000000000000000060648201526084015b60405180910390fd5b6002600084600a8111156109af576109af611713565b600a8111156109c0576109c0611713565b8152602081019190915260409081016000205490517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905290911690639dc29fac906044015b6020604051808303816000875af1158015610a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d9190611a3b565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526008602052604081205460ff169081600a811115610aaf57610aaf611713565b1415610b17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4e6f20746f6b656e2077697468207375636820616464726573730000000000006044820152606401610990565b610a6d818484610888565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b8c57600080fd5b505af1158015610729573d6000803e3d6000fd5b60008054610100900460ff1615610bc05750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610cfb5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190527f6661696c6564000000000000000000000000000000000000000000000000000082840152825180830384018152606083019093526000929091610c65917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001611a76565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610c9d91611abe565b6000604051808303816000865af19150503d8060008114610cda576040519150601f19603f3d011682016040523d82523d6000602084013e610cdf565b606091505b5091505080806020019051810190610cf79190611a3b565b9150505b919050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526008602052604081205460ff169081600a811115610d3c57610d3c611713565b1415610da4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4e6f20746f6b656e2077697468207375636820616464726573730000000000006044820152606401610990565b610a6d818484610e8b565b60006002600085600a811115610dc757610dc7611713565b600a811115610dd857610dd8611713565b8152602081019190915260409081016000205490517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015284811660248301529091169063dd62ed3e90604401602060405180830381865afa158015610e5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e839190611a5d565b949350505050565b60026003600085600a811115610ea357610ea3611713565b600a811115610eb457610eb4611713565b815260208101919091526040016000205460ff166004811115610ed957610ed9611713565b1415610ff6576000546040517fc88a5e6d000000000000000000000000000000000000000000000000000000008152306004820152602481018390526201000090910473ffffffffffffffffffffffffffffffffffffffff169063c88a5e6d90604401600060405180830381600087803b158015610f5657600080fd5b505af1158015610f6a573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610fd857600080fd5b505af1158015610fec573d6000803e3d6000fd5b505050505061163c565b600380600085600a81111561100d5761100d611713565b600a81111561101e5761101e611713565b815260208101919091526040016000205460ff16600481111561104357611043611713565b14156111aa576000546040517fc88a5e6d000000000000000000000000000000000000000000000000000000008152306004820152602481018390526201000090910473ffffffffffffffffffffffffffffffffffffffff169063c88a5e6d90604401600060405180830381600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b505050506002600084600a8111156110ee576110ee611713565b600a8111156110ff576110ff611713565b8152602081019190915260409081016000205490517fa1903eab00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9091169063a1903eab90839060240160206040518083038185885af115801561117f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111a49190611a5d565b5061163c565b60046003600085600a8111156111c2576111c2611713565b600a8111156111d3576111d3611713565b815260208101919091526040016000205460ff1660048111156111f8576111f8611713565b141561148f5760006002600085600a81111561121657611216611713565b600a81111561122757611227611713565b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c49190611ada565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600860205260409020549091506112fb9060ff163084610e8b565b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b36002600087600a81111561132d5761132d611713565b600a81111561133e5761133e611713565b81526020810191909152604090810160002054905160e083901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018590526044016020604051808303816000875af11580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190611a3b565b506002600085600a8111156113fd576113fd611713565b600a81111561140e5761140e611713565b8152602081019190915260409081016000205490517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990604401600060405180830381600087803b158015610fd857600080fd5b60016003600085600a8111156114a7576114a7611713565b600a8111156114b8576114b8611713565b815260208101919091526040016000205460ff1660048111156114dd576114dd611713565b14156115b4576002600084600a8111156114f9576114f9611713565b600a81111561150a5761150a611713565b8152602081019190915260409081016000205490517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810183905273ffffffffffffffffffffffffffffffffffffffff909116906340c10f19906044016020604051808303816000875af1158015611590573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a49190611a3b565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f74657374546f6b656e53756974653a20547279696e6720746f207472616e736660448201527f657220756e6b6e6f776e20746f6b656e000000000000000000000000000000006064820152608401610990565b6002600084600a81111561165257611652611713565b600a81111561166357611663611713565b8152602081019190915260409081016000205490517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490529091169063a9059cbb90604401610a2a565b73ffffffffffffffffffffffffffffffffffffffff811681146116f357600080fd5b50565b60006020828403121561170857600080fd5b8135610881816116d1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600b831061175657611756611713565b91905290565b60006020828403121561176e57600080fd5b5035919050565b8035600b8110610cfb57600080fd5b60006020828403121561179657600080fd5b61088182611775565b60005b838110156117ba5781810151838201526020016117a2565b83811115610a6d5750506000910152565b60208152600082518060208401526117ea81604085016020870161179f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000806000806080858703121561183257600080fd5b61183b85611775565b9350602085013561184b816116d1565b9250604085013561185b816116d1565b9396929550929360600135925050565b602080825282518282018190526000919060409081850190868401855b828110156118c7578151805173ffffffffffffffffffffffffffffffffffffffff90811686529087015116868501529284019290850190600101611888565b5091979650505050505050565b600080604083850312156118e757600080fd5b6118f083611775565b91506020830135611900816116d1565b809150509250929050565b60008060006060848603121561192057600080fd5b61192984611775565b92506020840135611939816116d1565b91506040840135611949816116d1565b809150509250925092565b60008060006060848603121561196957600080fd5b61197284611775565b92506020840135611982816116d1565b929592945050506040919091013590565b6000806000606084860312156119a857600080fd5b8335611929816116d1565b6000806000606084860312156119c857600080fd5b8335611972816116d1565b602081016005831061175657611756611713565b600181811c908216806119fb57607f821691505b60208210811415611a35577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600060208284031215611a4d57600080fd5b8151801515811461088157600080fd5b600060208284031215611a6f57600080fd5b5051919050565b7fffffffff000000000000000000000000000000000000000000000000000000008316815260008251611ab081600485016020870161179f565b919091016004019392505050565b60008251611ad081846020870161179f565b9190910192915050565b600060208284031215611aec57600080fd5b8151610881816116d156fea264697066735822122010fe735ed069aca27931edce4ba2ff14ec7886bf21b0eea685a884f9200fb49e64736f6c634300080a003360c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b5061014e565b82805461008690610113565b90600052602060002090601f0160209004810192826100a857600085556100ee565b82601f106100c157805160ff19168380011785556100ee565b828001600101855582156100ee579182015b828111156100ee5782518255916020019190600101906100d3565b506100fa9291506100fe565b5090565b5b808211156100fa57600081556001016100ff565b600181811c9082168061012757607f821691505b6020821081141561014857634e487b7160e01b600052602260045260246000fd5b50919050565b6109548061015d6000396000f3fe6080604052600436106100cb5760003560e01c806340c10f1911610074578063a9059cbb1161004e578063a9059cbb14610225578063d0e30db014610245578063dd62ed3e1461024d57600080fd5b806340c10f19146101c357806370a08231146101e357806395d89b411461021057600080fd5b806323b872dd116100a557806323b872dd146101575780632e1a7d4d14610177578063313ce5671461019757600080fd5b806306fdde03146100df578063095ea7b31461010a57806318160ddd1461013a57600080fd5b366100da576100d8610285565b005b600080fd5b3480156100eb57600080fd5b506100f46102e0565b6040516101019190610703565b60405180910390f35b34801561011657600080fd5b5061012a61012536600461079f565b61036e565b6040519015158152602001610101565b34801561014657600080fd5b50475b604051908152602001610101565b34801561016357600080fd5b5061012a6101723660046107c9565b6103e7565b34801561018357600080fd5b506100d8610192366004610805565b6105fe565b3480156101a357600080fd5b506002546101b19060ff1681565b60405160ff9091168152602001610101565b3480156101cf57600080fd5b506100d86101de36600461079f565b6106a4565b3480156101ef57600080fd5b506101496101fe36600461081e565b60036020526000908152604090205481565b34801561021c57600080fd5b506100f46106e2565b34801561023157600080fd5b5061012a61024036600461079f565b6106ef565b6100d8610285565b34801561025957600080fd5b50610149610268366004610839565b600460209081526000928352604080842090915290825290205481565b33600090815260036020526040812080543492906102a490849061089b565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102ed906108b3565b80601f0160208091040260200160405190810160405280929190818152602001828054610319906108b3565b80156103665780601f1061033b57610100808354040283529160200191610366565b820191906000526020600020905b81548152906001019060200180831161034957829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103d69086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081205482111561041957600080fd5b73ffffffffffffffffffffffffffffffffffffffff8416331480159061048f575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105175773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156104d157600080fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033845290915281208054849290610511908490610907565b90915550505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061054c908490610907565b909155505073ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120805484929061058690849061089b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105ec91815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561061a57600080fd5b3360009081526003602052604081208054839290610639908490610907565b9091555050604051339082156108fc029083906000818181858888f1935050505015801561066b573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040812080548392906106d990849061089b565b90915550505050565b600180546102ed906108b3565b60006106fc3384846103e7565b9392505050565b600060208083528351808285015260005b8181101561073057858101830151858201604001528201610714565b81811115610742576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461079a57600080fd5b919050565b600080604083850312156107b257600080fd5b6107bb83610776565b946020939093013593505050565b6000806000606084860312156107de57600080fd5b6107e784610776565b92506107f560208501610776565b9150604084013590509250925092565b60006020828403121561081757600080fd5b5035919050565b60006020828403121561083057600080fd5b6106fc82610776565b6000806040838503121561084c57600080fd5b61085583610776565b915061086360208401610776565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156108ae576108ae61086c565b500190565b600181811c908216806108c757607f821691505b60208210811415610901577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000828210156109195761091961086c565b50039056fea26469706673582212206ec943fa4e3b70d8fca6c25b6aa26fa18e8f8952ce3bc4d5afcb443bf3097c0564736f6c634300080a003360806040526000600255600060035534801561001a57600080fd5b506111fa8061002a6000396000f3fe60806040526004361061016e5760003560e01c80637a28fb88116100cb578063bdd17e1c1161007f578063dd62ed3e11610059578063dd62ed3e146103ee578063ee7a7c0414610441578063f5eb42dc1461046157600080fd5b8063bdd17e1c146103ad578063cdb9a21c146103c3578063d5002f2e146103d957600080fd5b8063a1903eab116100b0578063a1903eab1461035a578063a457c2d71461036d578063a9059cbb1461038d57600080fd5b80637a28fb88146102f457806395d89b411461031457600080fd5b806323b872dd1161012257806337cfdaca1161010757806337cfdaca1461020d57806339509351146102b457806370a08231146102d457600080fd5b806323b872dd14610278578063313ce5671461029857600080fd5b806318160ddd1161015357806318160ddd1461020d578063192084511461023057806322301f6e1461025057600080fd5b806306fdde0314610185578063095ea7b3146101dd57600080fd5b366101805761017d6000610481565b50005b600080fd5b34801561019157600080fd5b5060408051808201909152601781527f4c6971756964207374616b656420457468657220322e3000000000000000000060208201525b6040516101d49190610f63565b60405180910390f35b3480156101e957600080fd5b506101fd6101f8366004610fff565b610545565b60405190151581526020016101d4565b34801561021957600080fd5b5061022261055b565b6040519081526020016101d4565b34801561023c57600080fd5b5061022261024b366004611029565b61056b565b34801561025c57600080fd5b5061027661026b366004611042565b600391909155600255565b005b34801561028457600080fd5b506101fd610293366004611064565b6105ab565b3480156102a457600080fd5b50604051601281526020016101d4565b3480156102c057600080fd5b506101fd6102cf366004610fff565b610696565b3480156102e057600080fd5b506102226102ef3660046110a0565b6106d9565b34801561030057600080fd5b5061022261030f366004611029565b61070e565b34801561032057600080fd5b5060408051808201909152600581527f737445544800000000000000000000000000000000000000000000000000000060208201526101c7565b6102226103683660046110a0565b61073a565b34801561037957600080fd5b506101fd610388366004610fff565b610745565b34801561039957600080fd5b506101fd6103a8366004610fff565b6107f9565b3480156103b957600080fd5b5061022260035481565b3480156103cf57600080fd5b5061022260025481565b3480156103e557600080fd5b50610222610806565b3480156103fa57600080fd5b506102226104093660046110bb565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b34801561044d57600080fd5b5061027661045c366004610fff565b610811565b34801561046d57600080fd5b5061022261047c3660046110a0565b61081f565b60003334806104f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f4445504f534954000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60006104fc8261056b565b9050806105065750805b8160036000828254610518919061111d565b909155506105289050838261084a565b61053383838761093b565b61053d8382610992565b949350505050565b60006105523384846109ea565b50600192915050565b600061056660035490565b905090565b60008061057760035490565b9050806105875750600092915050565b6105a48161059e61059760025490565b8690610b52565b90610b5e565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602090815260408083203384529091528120548281101561066c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5452414e534645525f414d4f554e545f455843454544535f414c4c4f57414e4360448201527f450000000000000000000000000000000000000000000000000000000000000060648201526084016104e8565b610677858585610b6a565b61068b85336106868487610bef565b6109ea565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916105529185906106869086610bfb565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260408120546107089061070e565b92915050565b60008061071a60025490565b90508061072a5750600092915050565b6105a48161059e61059760035490565b600061070882610481565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156107e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4445435245415345445f414c4c4f57414e43455f42454c4f575f5a45524f000060448201526064016104e8565b6107ef33856106868487610bef565b5060019392505050565b6000610552338484610b6a565b600061056660025490565b61081b8282610c07565b5050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040812054610708565b73ffffffffffffffffffffffffffffffffffffffff82166108c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d494e545f544f5f5448455f5a45524f5f41444452455353000000000000000060448201526064016104e8565b80600260008282546108d9919061111d565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205461090e9082610bfb565b73ffffffffffffffffffffffffffffffffffffffff90921660009081526020819052604090209190915550565b6040805183815273ffffffffffffffffffffffffffffffffffffffff83811660208301528516917fed8dd430b1e4bba98e943dc5b157cf7b54d9e12916d6c474ff5733a95001d03b910160405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff821660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6109d58461070e565b60405190815260200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8316610a67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f415050524f56455f46524f4d5f5a45524f5f414444524553530000000000000060448201526064016104e8565b73ffffffffffffffffffffffffffffffffffffffff8216610ae4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f415050524f56455f544f5f5a45524f5f4144445245535300000000000000000060448201526064016104e8565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105a48284611135565b60006105a48284611172565b6000610b758261056b565b9050610b82848483610d64565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610be191815260200190565b60405180910390a350505050565b60006105a482846111ad565b60006105a4828461111d565b73ffffffffffffffffffffffffffffffffffffffff8216610c84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4255524e5f46524f4d5f5448455f5a45524f5f4144445245535300000000000060448201526064016104e8565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205480821115610d14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4255524e5f414d4f554e545f455843454544535f42414c414e4345000000000060448201526064016104e8565b8160026000828254610d2691906111ad565b90915550610d3690508183610bef565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152602081905260409020929092555050565b73ffffffffffffffffffffffffffffffffffffffff8316610de1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5452414e534645525f46524f4d5f5448455f5a45524f5f41444452455353000060448201526064016104e8565b73ffffffffffffffffffffffffffffffffffffffff8216610e5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5452414e534645525f544f5f5448455f5a45524f5f414444524553530000000060448201526064016104e8565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205480821115610eee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5452414e534645525f414d4f554e545f455843454544535f42414c414e43450060448201526064016104e8565b610ef88183610bef565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081905260408082209390935590851681522054610f349083610bfb565b73ffffffffffffffffffffffffffffffffffffffff909316600090815260208190526040902092909255505050565b600060208083528351808285015260005b81811015610f9057858101830151858201604001528201610f74565b81811115610fa2576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ffa57600080fd5b919050565b6000806040838503121561101257600080fd5b61101b83610fd6565b946020939093013593505050565b60006020828403121561103b57600080fd5b5035919050565b6000806040838503121561105557600080fd5b50508035926020909101359150565b60008060006060848603121561107957600080fd5b61108284610fd6565b925061109060208501610fd6565b9150604084013590509250925092565b6000602082840312156110b257600080fd5b6105a482610fd6565b600080604083850312156110ce57600080fd5b6110d783610fd6565b91506110e560208401610fd6565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611130576111306110ee565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561116d5761116d6110ee565b500290565b6000826111a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000828210156111bf576111bf6110ee565b50039056fea2646970667358221220a5b4f31162ba2b8b3424cef84b31ef91d05a825243602b5fdf758ffb49b8246364736f6c634300080a003360a06040523480156200001157600080fd5b506040516200175838038062001758833981016040819052620000349162000269565b8251839083906200004d906003906020850190620000f6565b50805162000063906004906020840190620000f6565b505050620000806200007a620000a060201b60201c565b620000a4565b60ff166080525050600680546001600160a01b031916331790556200032b565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200010490620002ee565b90600052602060002090601f01602090048101928262000128576000855562000173565b82601f106200014357805160ff191683800117855562000173565b8280016001018555821562000173579182015b828111156200017357825182559160200191906001019062000156565b506200018192915062000185565b5090565b5b8082111562000181576000815560010162000186565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001c457600080fd5b81516001600160401b0380821115620001e157620001e16200019c565b604051601f8301601f19908116603f011681019082821181831017156200020c576200020c6200019c565b816040528381526020925086838588010111156200022957600080fd5b600091505b838210156200024d57858201830151818301840152908201906200022e565b838211156200025f5760008385830101525b9695505050505050565b6000806000606084860312156200027f57600080fd5b83516001600160401b03808211156200029757600080fd5b620002a587838801620001b2565b94506020860151915080821115620002bc57600080fd5b50620002cb86828701620001b2565b925050604084015160ff81168114620002e357600080fd5b809150509250925092565b600181811c908216806200030357607f821691505b602082108114156200032557634e487b7160e01b600052602260045260246000fd5b50919050565b60805161141162000347600039600061025f01526114116000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806370a08231116100cd5780639dc29fac11610081578063a9059cbb11610066578063a9059cbb1461034c578063dd62ed3e1461035f578063f2fde38b146103a557600080fd5b80639dc29fac14610326578063a457c2d71461033957600080fd5b806379cc6790116100b257806379cc6790146102ed5780638da5cb5b1461030057806395d89b411461031e57600080fd5b806370a08231146102af578063715018a6146102e557600080fd5b806318160ddd11610124578063313ce56711610109578063313ce56714610258578063395093511461028957806340c10f191461029c57600080fd5b806318160ddd1461023357806323b872dd1461024557600080fd5b806306fdde03146101565780630754617214610174578063095ea7b3146101b95780631652e9fc146101dc575b600080fd5b61015e6103b8565b60405161016b91906111d2565b60405180910390f35b6006546101949073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016b565b6101cc6101c736600461126e565b61044a565b604051901515815260200161016b565b6102316101ea366004611298565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b6002545b60405190815260200161016b565b6101cc6102533660046112ba565b610460565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161016b565b6101cc61029736600461126e565b61054b565b6101cc6102aa36600461126e565b610594565b6102376102bd366004611298565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6102316106a3565b6101cc6102fb36600461126e565b610730565b60055473ffffffffffffffffffffffffffffffffffffffff16610194565b61015e6107be565b6101cc61033436600461126e565b6107cd565b6101cc61034736600461126e565b6107d9565b6101cc61035a36600461126e565b6108b1565b61023761036d3660046112f6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6102316103b3366004611298565b6108be565b6060600380546103c790611329565b80601f01602080910402602001604051908101604052809291908181526020018280546103f390611329565b80156104405780601f1061041557610100808354040283529160200191610440565b820191906000526020600020905b81548152906001019060200180831161042357829003601f168201915b5050505050905090565b60006104573384846109ee565b50600192915050565b600061046d848484610ba2565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020908152604080832033845290915290205482811015610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61054085338584036109ee565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161045791859061058f9086906113ac565b6109ee565b60065460009073ffffffffffffffffffffffffffffffffffffffff163314610618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d696e7465722063616c6c73206f6e6c79000000000000000000000000000000604482015260640161052a565b60065473ffffffffffffffffffffffffffffffffffffffff163314610699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d696e7465722063616c6c73206f6e6c79000000000000000000000000000000604482015260640161052a565b6104578383610e56565b60055473ffffffffffffffffffffffffffffffffffffffff163314610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161052a565b61072e6000610f76565b565b60065460009073ffffffffffffffffffffffffffffffffffffffff1633146107b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d696e7465722063616c6c73206f6e6c79000000000000000000000000000000604482015260640161052a565b6104578383610fed565b6060600480546103c790611329565b60006104578383610fed565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091528120548281101561089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161052a565b6108a733858584036109ee565b5060019392505050565b6000610457338484610ba2565b60055473ffffffffffffffffffffffffffffffffffffffff16331461093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161052a565b73ffffffffffffffffffffffffffffffffffffffff81166109e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161052a565b6109eb81610f76565b50565b73ffffffffffffffffffffffffffffffffffffffff8316610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff8216610b33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff8216610ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610d9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610de29084906113ac565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e4891815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610ed3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161052a565b8060026000828254610ee591906113ac565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f1f9084906113ac565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff8216611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604081208383039055600280548492906111829084906113c4565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610b95565b600060208083528351808285015260005b818110156111ff578581018301518582016040015282016111e3565b81811115611211576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461126957600080fd5b919050565b6000806040838503121561128157600080fd5b61128a83611245565b946020939093013593505050565b6000602082840312156112aa57600080fd5b6112b382611245565b9392505050565b6000806000606084860312156112cf57600080fd5b6112d884611245565b92506112e660208501611245565b9150604084013590509250925092565b6000806040838503121561130957600080fd5b61131283611245565b915061132060208401611245565b90509250929050565b600181811c9082168061133d57607f821691505b60208210811415611377577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156113bf576113bf61137d565b500190565b6000828210156113d6576113d661137d565b50039056fea2646970667358221220fd9684963a1e0e9d3eb55681a6f85f5c76804530c79f10cf8d0cfbd35511577164736f6c634300080a003360c06040523480156200001157600080fd5b506040516200170938038062001709833981016040819052620000349162000266565b8351849084906200004d906003906020850190620000f3565b50805162000063906004906020840190620000f3565b505050620000806200007a6200009d60201b60201c565b620000a1565b60ff9091166080526001600160a01b031660a05250620003479050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805462000101906200030a565b90600052602060002090601f01602090048101928262000125576000855562000170565b82601f106200014057805160ff191683800117855562000170565b8280016001018555821562000170579182015b828111156200017057825182559160200191906001019062000153565b506200017e92915062000182565b5090565b5b808211156200017e576000815560010162000183565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001c157600080fd5b81516001600160401b0380821115620001de57620001de62000199565b604051601f8301601f19908116603f0116810190828211818310171562000209576200020962000199565b816040528381526020925086838588010111156200022657600080fd5b600091505b838210156200024a57858201830151818301840152908201906200022b565b838211156200025c5760008385830101525b9695505050505050565b600080600080608085870312156200027d57600080fd5b84516001600160401b03808211156200029557600080fd5b620002a388838901620001af565b95506020870151915080821115620002ba57600080fd5b50620002c987828801620001af565b935050604085015160ff81168114620002e157600080fd5b60608601519092506001600160a01b0381168114620002ff57600080fd5b939692955090935050565b600181811c908216806200031f57607f821691505b602082108114156200034157634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161138e6200037b600039600081816101f70152818161041f0152610600015260006101a2015261138e6000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636f307dc3116100b257806395d89b4111610081578063a9059cbb11610066578063a9059cbb146102b5578063dd62ed3e146102c8578063f2fde38b1461030e57600080fd5b806395d89b411461029a578063a457c2d7146102a257600080fd5b80636f307dc3146101f257806370a082311461023e578063715018a6146102745780638da5cb5b1461027c57600080fd5b806323b872dd116100ee57806323b872dd14610188578063313ce5671461019b57806339509351146101cc57806340c10f19146101df57600080fd5b806306fdde0314610120578063095ea7b31461013e57806318160ddd146101615780631e9a695014610173575b600080fd5b610128610321565b604051610135919061112d565b60405180910390f35b61015161014c3660046111c9565b6103b3565b6040519015158152602001610135565b6002545b604051908152602001610135565b6101866101813660046111c9565b6103c9565b005b6101516101963660046111f3565b610491565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610135565b6101516101da3660046111c9565b61057c565b6101866101ed3660046111c9565b6105c5565b6102197f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610135565b61016561024c36600461122f565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610186610691565b60055473ffffffffffffffffffffffffffffffffffffffff16610219565b61012861071e565b6101516102b03660046111c9565b61072d565b6101516102c33660046111c9565b610805565b6101656102d6366004611251565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b61018661031c36600461122f565b610812565b60606003805461033090611284565b80601f016020809104026020016040519081016040528092919081815260200182805461035c90611284565b80156103a95780601f1061037e576101008083540402835291602001916103a9565b820191906000526020600020905b81548152906001019060200180831161038c57829003601f168201915b5050505050905090565b60006103c0338484610942565b50600192915050565b6103d33382610af5565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015610468573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048c91906112d8565b505050565b600061049e848484610ce2565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020908152604080832033845290915290205482811015610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105718533858403610942565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916103c09185906105c0908690611329565b610942565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303816000875af115801561065e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068291906112d8565b5061068d8282610f96565b5050565b60055473ffffffffffffffffffffffffffffffffffffffff163314610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055b565b61071c60006110b6565b565b60606004805461033090611284565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156107ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161055b565b6107fb3385858403610942565b5060019392505050565b60006103c0338484610ce2565b60055473ffffffffffffffffffffffffffffffffffffffff163314610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055b565b73ffffffffffffffffffffffffffffffffffffffff8116610936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161055b565b61093f816110b6565b50565b73ffffffffffffffffffffffffffffffffffffffff83166109e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161055b565b73ffffffffffffffffffffffffffffffffffffffff8216610a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161055b565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8216610b98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161055b565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610c4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161055b565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610c8a908490611341565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161055b565b73ffffffffffffffffffffffffffffffffffffffff8216610e28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161055b565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610ede576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161055b565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610f22908490611329565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f8891815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161055b565b80600260008282546110259190611329565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260408120805483929061105f908490611329565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b8181101561115a5785810183015185820160400152820161113e565b8181111561116c576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146111c457600080fd5b919050565b600080604083850312156111dc57600080fd5b6111e5836111a0565b946020939093013593505050565b60008060006060848603121561120857600080fd5b611211846111a0565b925061121f602085016111a0565b9150604084013590509250925092565b60006020828403121561124157600080fd5b61124a826111a0565b9392505050565b6000806040838503121561126457600080fd5b61126d836111a0565b915061127b602084016111a0565b90509250929050565b600181811c9082168061129857607f821691505b602082108114156112d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000602082840312156112ea57600080fd5b8151801515811461124a57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561133c5761133c6112fa565b500190565b600082821015611353576113536112fa565b50039056fea26469706673582212203a6db30cd3c097921df4156794aa7973eb848711deeb2cffd7c54a9df1fdb0a564736f6c634300080a003360a060405234801561001057600080fd5b506040516106ca3803806106ca83398101604081905261002f9161006c565b60009190915560ff166080526001805460506001600160501b031991821681179092556004805490911690911790554260028190556003556100a2565b6000806040838503121561007f57600080fd5b82519150602083015160ff8116811461009757600080fd5b809150509250929050565b60805161060e6100bc600039600060d3015261060e6000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80639a6fc8f511610081578063d62ada111161005b578063d62ada11146102dc578063f7a30806146102f4578063feaf968c1461030757600080fd5b80639a6fc8f5146101cd578063bd18ad531461023a578063cd653afc1461024d57600080fd5b806354fd4d50116100b257806354fd4d501461012d57806367e8d83d1461013c5780637284e4161461018e57600080fd5b8063313ce567146100ce5780633fd0875f1461010c575b600080fd5b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020015b60405180910390f35b6004546a0100000000000000000000900460ff166040516101039190610441565b60405160018152602001610103565b61018c61014a366004610482565b600480549115156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff909216919091179055565b005b604080518082018252600c81527f7072696365206f7261636c6500000000000000000000000000000000000000006020820152905161010391906104ab565b6102036101db36600461053d565b60015460005460025460035460045469ffffffffffffffffffff948516941691939590929450565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a001610103565b61018c610248366004610558565b61030f565b61018c61025b366004610579565b6001805469ffffffffffffffffffff9586167fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090911617905560029290925560035560048054919092167fffffffffffffffffffffffffffffffffffffffff00ff00000000000000000000909116176b020000000000000000000000179055565b6102e461035f565b6040519015158152602001610103565b61018c6103023660046105bf565b600055565b610203610385565b600480548291907fffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff166b01000000000000000000000083600281111561035757610357610412565b021790555050565b600454600090610380906b010000000000000000000000900460ff166103d6565b905090565b60008060008060006004600c9054906101000a900460ff16156103a757600080fd5b505060015460005460025460035460045469ffffffffffffffffffff9485169893975091955093509190911690565b600060028260028111156103ec576103ec610412565b14156103f757600080fd5b600182600281111561040b5761040b610412565b1492915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016006831061047c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60006020828403121561049457600080fd5b813580151581146104a457600080fd5b9392505050565b600060208083528351808285015260005b818110156104d8578581018301518582016040015282016104bc565b818111156104ea576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803569ffffffffffffffffffff8116811461053857600080fd5b919050565b60006020828403121561054f57600080fd5b6104a48261051e565b60006020828403121561056a57600080fd5b8135600381106104a457600080fd5b6000806000806080858703121561058f57600080fd5b6105988561051e565b935060208501359250604085013591506105b46060860161051e565b905092959194509250565b6000602082840312156105d157600080fd5b503591905056fea264697066735822122014874f7a973b86501c4c1a8be32490fe902c8f088ee234d25f9b2497e19f9e5264736f6c634300080a00336080604052600080546001600160a01b031916737109709ecfa91a80626ff3989d68f67f5b1dd12d1790553480156200003757600080fd5b5060405162007eb938038062007eb98339810160408190526200005a91620009d5565b611f4060c8610190611d4c604051620000739062000968565b938452602084019290925260408301526060820152608001604051809103906000f080158015620000a8573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b039283161790556000546040516303223eab60e11b81527370997970c51812dc3a010c7d01b50e0d17dc79c860048201529116906306447d5690602401600060405180830381600087803b1580156200011657600080fd5b505af11580156200012b573d6000803e3d6000fd5b505050506040516200013d9062000976565b604051809103906000f0801580156200015a573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055604051620001899062000984565b604051809103906000f080158015620001a6573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b039283169081179091556001546040516376aad60560e01b815292166004830152906376aad60590602401600060405180830381600087803b1580156200020257600080fd5b505af115801562000217573d6000803e3d6000fd5b50506002546040516301ed651160e41b81527393548eb8453a498222c4ff2c4375b7de8af5a38a60048201526001600160a01b039091169250631ed651109150602401600060405180830381600087803b1580156200027557600080fd5b505af11580156200028a573d6000803e3d6000fd5b5050600880546001600160a01b0319167393548eb8453a498222c4ff2c4375b7de8af5a38a1790555050604051601290620002c59062000992565b6060808252600a908201526944696573656c2044414960b01b608082015260a060208201819052600490820152636444414960e01b60c082015260ff909116604082015260e001604051809103906000f08015801562000329573d6000803e3d6000fd5b50600680546001600160a01b0319166001600160a01b039283161790556040516367b4264560e01b8152908216906367b42645906200036e9060019060040162000a1f565b602060405180830381865afa1580156200038c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b29190620009d5565b600580546001600160a01b0319166001600160a01b0392831617905560405163eebab8ef60e01b81529082169063eebab8ef90620004179060019073f39fd6e51aad88f6f4ce6ab8827279cfffb922669068056bc75e2d631000009060040162000a35565b600060405180830381600087803b1580156200043257600080fd5b505af115801562000447573d6000803e3d6000fd5b50506002546005546006546007546040516001600160a01b0394851696509284169450908316921690600019906200047f90620009a0565b6001600160a01b039586168152938516602085015291841660408401529092166060820152608081019190915260a001604051809103906000f080158015620004cc573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b0392831617905560008054604080516390c5013b60e01b8152905191909316926390c5013b92600480830193919282900301818387803b1580156200052657600080fd5b505af11580156200053b573d6000803e3d6000fd5b505060005460405163ca669fa760e01b815273f39fd6e51aad88f6f4ce6ab8827279cfffb9226660048201526001600160a01b03909116925063ca669fa79150602401600060405180830381600087803b1580156200059957600080fd5b505af1158015620005ae573d6000803e3d6000fd5b505060055460035460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116925063095ea7b391506044016020604051808303816000875af115801562000609573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200062f919062000a5f565b506000546040516303223eab60e11b81527370997970c51812dc3a010c7d01b50e0d17dc79c860048201526001600160a01b03909116906306447d5690602401600060405180830381600087803b1580156200068a57600080fd5b505af11580156200069f573d6000803e3d6000fd5b505060065460035460405163f2fde38b60e01b81526001600160a01b0391821660048201529116925063f2fde38b9150602401600060405180830381600087803b158015620006ed57600080fd5b505af115801562000702573d6000803e3d6000fd5b50506003546040516001600160a01b039091169250620007239150620009ae565b6001600160a01b039091168152602001604051809103906000f08015801562000750573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b03928316178155600054600354604080516318caf8e360e31b8152918516938201939093526024810192909252600b60448301526a506f6f6c5365727669636560a81b60648301529091169063c657c71890608401600060405180830381600087803b158015620007d657600080fd5b505af1158015620007eb573d6000803e3d6000fd5b5050600054600654604080516318caf8e360e31b81526001600160a01b0392831660048201526024810191909152600b60448201526a2234b2b9b2b62a37b5b2b760a91b60648201529116925063c657c7189150608401600060405180830381600087803b1580156200085d57600080fd5b505af115801562000872573d6000803e3d6000fd5b5050600054600554604080516318caf8e360e31b81526001600160a01b03928316600482015260248101919091526012604482015271556e6465726c79696e67546f6b656e44414960701b60648201529116925063c657c7189150608401600060405180830381600087803b158015620008eb57600080fd5b505af115801562000900573d6000803e3d6000fd5b505060008054604080516390c5013b60e01b815290516001600160a01b0390921694506390c5013b9350600480820193929182900301818387803b1580156200094857600080fd5b505af11580156200095d573d6000803e3d6000fd5b505050505062000a83565b610b128062000c7f83390190565b61098c806200179183390190565b610fcd806200211d83390190565b6115c480620030ea83390190565b61339f80620046ae83390190565b61046c8062007a4d83390190565b6001600160a01b0381168114620009d257600080fd5b50565b600060208284031215620009e857600080fd5b8151620009f581620009bc565b9392505050565b600b811062000a1b57634e487b7160e01b600052602160045260246000fd5b9052565b6020810162000a2f8284620009fc565b92915050565b6060810162000a458286620009fc565b6001600160a01b0393909316602082015260400152919050565b60006020828403121562000a7257600080fd5b81518015158114620009f557600080fd5b6101ec8062000a936000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806361d027b31161005b57806361d027b3146101365780636f307dc314610156578063de28735914610176578063e1463e581461019657600080fd5b80630f69630b1461008d5780632954018c146100d657806336dda7d5146100f6578063570a7af214610116575b600080fd5b6007546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6002546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6006546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6003546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6008546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6005546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6001546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b6004546100ad9073ffffffffffffffffffffffffffffffffffffffff168156fea264697066735822122063b4e5f1b51a3534a7042b6016357775e0cfc8b2398c440305270eb714cf575964736f6c634300080a00336101206040523480156200001257600080fd5b5060405162000b1238038062000b1283398101604081905262000035916200021f565b604080518082019091526002815261049560f41b602082015261271085106200007c5760405162461bcd60e51b815260040162000073919062000256565b60405180910390fd5b50604080518082019091526002815261049560f41b6020820152612710841115620000bc5760405162461bcd60e51b815260040162000073919062000256565b50604080518082019091526002815261049560f41b6020820152612710831115620000fc5760405162461bcd60e51b815260040162000073919062000256565b5060006200012185670de0b6b3a7640000620001c160201b6200043c1790919060201c565b608081905290506200013c81670de0b6b3a7640000620002c4565b60a052620001636b033b2e3c9fd0803ce800000085620001c1602090811b6200043c17901c565b60c0526200018a6b033b2e3c9fd0803ce800000084620001c1602090811b6200043c17901c565b60e052620001b16b033b2e3c9fd0803ce800000083620001c1602090811b6200043c17901c565b61010052506200036c9350505050565b6000821580620001cf575081155b15620001de5750600062000219565b612710620001ee600282620002f4565b61ffff16620001fe848662000318565b6200020a91906200033a565b62000216919062000355565b90505b92915050565b600080600080608085870312156200023657600080fd5b505082516020840151604085015160609095015191969095509092509050565b600060208083528351808285015260005b81811015620002855785810183015185820160400152820162000267565b8181111562000298576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015620002d957620002d9620002ae565b500390565b634e487b7160e01b600052601260045260246000fd5b600061ffff808416806200030c576200030c620002de565b92169190910492915050565b6000816000190483118215151615620003355762000335620002ae565b500290565b60008219821115620003505762000350620002ae565b500190565b600082620003675762000367620002de565b500490565b60805160a05160c05160e0516101005161070162000411600039600081816101840152818161030b015261041701526000818160e70152818161025a0152818161033e01526103f401526000818161010e015281816101bc0152818161028e0152818161035f01526103d101526000818161015d01526102bc01526000818160b80152818161020d01528181610235015281816102e001526103a101526107016000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80639cd3fdb51161005b5780639cd3fdb514610109578063c8284e6d14610130578063f81d438114610158578063fc4b2b781461017f57600080fd5b806342568d441461008d57806350ced104146100b357806354fd4d50146100da5780639aec06ea146100e2575b600080fd5b6100a061009b366004610537565b6101a6565b6040519081526020015b60405180910390f35b6100a07f000000000000000000000000000000000000000000000000000000000000000081565b6100a0600181565b6100a07f000000000000000000000000000000000000000000000000000000000000000081565b6100a07f000000000000000000000000000000000000000000000000000000000000000081565b610138610397565b6040805194855260208501939093529183015260608201526080016100aa565b6100a07f000000000000000000000000000000000000000000000000000000000000000081565b6100a07f000000000000000000000000000000000000000000000000000000000000000081565b60008215806101b457508183105b156101e057507f0000000000000000000000000000000000000000000000000000000000000000610391565b6000836101ed8482610588565b6101ff90670de0b6b3a764000061059f565b610209919061060b565b90507f00000000000000000000000000000000000000000000000000000000000000008110156102ba577f000000000000000000000000000000000000000000000000000000000000000061027e827f000000000000000000000000000000000000000000000000000000000000000061059f565b610288919061060b565b6102b2907f000000000000000000000000000000000000000000000000000000000000000061061f565b915050610391565b7f00000000000000000000000000000000000000000000000000000000000000006103057f000000000000000000000000000000000000000000000000000000000000000083610588565b61032f907f000000000000000000000000000000000000000000000000000000000000000061059f565b610339919061060b565b6103837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061061f565b61038d919061061f565b9150505b92915050565b60008080806103ce7f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a764000061048d565b947f000000000000000000000000000000000000000000000000000000000000000094507f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b6000821580610449575081155b1561045657506000610391565b612710610464600282610637565b61ffff16610472848661059f565b61047c919061061f565b610486919061060b565b9392505050565b60408051808201909152600281527f4d33000000000000000000000000000000000000000000000000000000000000602082015260009082610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fc9190610658565b60405180910390fd5b50600061051360028461060b565b905082816105236127108761059f565b61052d919061061f565b61038d919061060b565b6000806040838503121561054a57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561059a5761059a610559565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156105d7576105d7610559565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261061a5761061a6105dc565b500490565b6000821982111561063257610632610559565b500190565b600061ffff8084168061064c5761064c6105dc565b92169190910492915050565b600060208083528351808285015260005b8181101561068557858101830151858201604001528201610669565b81811115610697576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea26469706673582212205428f2a5431c3c1928793ca5c2c8825fc467250326c6d5ae84382a87d1e80b2164736f6c634300080a0033608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61090e8061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063732818191161008c578063adce758d11610066578063adce758d14610215578063ba306df114610228578063d4eb5db01461023b578063f2fde38b1461027457600080fd5b806373281819146101b7578063819ad68e146101da5780638da5cb5b146101ed57600080fd5b806354fd4d50116100bd57806354fd4d501461016a5780635f259aba14610180578063715018a6146101af57600080fd5b806335914829146100e45780633a41ec641461011c5780634910832f14610155575b600080fd5b6101076100f236600461089b565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61010761012a36600461089b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b61016861016336600461089b565b610287565b005b610172600181565b604051908152602001610113565b61010761018e36600461089b565b60005473ffffffffffffffffffffffffffffffffffffffff91821691161490565b610168610387565b6101076101c536600461089b565b60026020526000908152604090205460ff1681565b6101686101e836600461089b565b610414565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610113565b61016861022336600461089b565b61050c565b61016861023636600461089b565b610601565b61010761024936600461089b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205460ff1690565b61016861028236600461089b565b6106f6565b60005473ffffffffffffffffffffffffffffffffffffffff16331461030d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155517fae26b1cfe9454ba87274a4e8330b6654684362d0f3d7bbd17f7449a1d38387c69190a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610408576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610304565b6104126000610826565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610304565b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fd400da6c0c0a894dacc0981730b88af0545d00272ee8fff1437bf560ff245fc49190a250565b60005473ffffffffffffffffffffffffffffffffffffffff16331461058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610304565b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f1998397e7203f7baca9d6f41b9e4da6e768daac5caad4234fb9bf5869d2715459190a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610304565b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f28b01395b7e25d20552a0c8dc8ecd3b1d4abc986f14dad7885fd45b6fd73c8d99190a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610304565b73ffffffffffffffffffffffffffffffffffffffff811661081a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610304565b61082381610826565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156108ad57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146108d157600080fd5b939250505056fea26469706673582212204712efbfe997070def77285a5b8753bc882b62da2133ce1937ad26cd2b48e49864736f6c634300080a0033608060405234801561001057600080fd5b5061001a3361005f565b60405130906f20a2222922a9a9afa82927ab24a222a960811b907fb37614c7d254ea8d16eb81fa11dddaeb266aa8ba4917980859c7740aff30c69190600090a36100af565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610f0f806100be6000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806377532ed9116100e3578063bcaead981161008c578063ce3c4ae411610066578063ce3c4ae414610308578063f2fde38b1461031b578063fca513a81461032e57600080fd5b8063bcaead98146102da578063c5120b39146102ed578063c513c9bb1461030057600080fd5b80639068a868116100bd5780639068a868146102b7578063addc1a76146102bf578063affd9243146102d257600080fd5b806377532ed91461027e57806386e09c08146102865780638da5cb5b1461029957600080fd5b80634c252f9111610145578063699f200f1161011f578063699f200f1461022d578063715018a61461026357806376aad6051461026b57600080fd5b80634c252f91146101fc578063530e784f1461020457806354fd4d501461021757600080fd5b80631ed65110116101765780631ed65110146101cc57806321da5837146101e157806326c74fc3146101f457600080fd5b8063060678c21461019257806308737695146101c4575b600080fd5b61019a610336565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61019a610366565b6101df6101da366004610e10565b610391565b005b6101df6101ef366004610e10565b610444565b61019a6104ef565b61019a61051a565b6101df610212366004610e10565b610545565b61021f600281565b6040519081526020016101bb565b61019a61023b366004610e4d565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101df6105f0565b6101df610279366004610e10565b61067d565b61019a610728565b6101df610294366004610e10565b610753565b60005473ffffffffffffffffffffffffffffffffffffffff1661019a565b61019a6107fe565b6101df6102cd366004610e10565b610829565b61019a6108d4565b6101df6102e8366004610e10565b6108ff565b6101df6102fb366004610e10565b6109aa565b61019a610a55565b6101df610316366004610e10565b610a80565b6101df610329366004610e10565b610b2b565b61019a610c58565b60006103617f444154415f434f4d50524553534f520000000000000000000000000000000000610c7f565b905090565b60006103617f41434c0000000000000000000000000000000000000000000000000000000000610c7f565b60005473ffffffffffffffffffffffffffffffffffffffff163314610417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6104417f54524541535552595f434f4e545241435400000000000000000000000000000082610d1d565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b6104417f574554485f47415445574159000000000000000000000000000000000000000082610d1d565b60006103617f54524541535552595f434f4e5452414354000000000000000000000000000000610c7f565b60006103617f574554485f544f4b454e00000000000000000000000000000000000000000000610c7f565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b6104417f50524943455f4f5241434c45000000000000000000000000000000000000000082610d1d565b60005473ffffffffffffffffffffffffffffffffffffffff163314610671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b61067b6000610d9b565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b6104417f41434c000000000000000000000000000000000000000000000000000000000082610d1d565b60006103617f574554485f474154455741590000000000000000000000000000000000000000610c7f565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b6104417f574554485f544f4b454e0000000000000000000000000000000000000000000082610d1d565b60006103617f4143434f554e545f464143544f52590000000000000000000000000000000000610c7f565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b6104417f4143434f554e545f464143544f5259000000000000000000000000000000000082610d1d565b60006103617f474541525f544f4b454e00000000000000000000000000000000000000000000610c7f565b60005473ffffffffffffffffffffffffffffffffffffffff163314610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b6104417f474541525f544f4b454e0000000000000000000000000000000000000000000082610d1d565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b6104417f444154415f434f4d50524553534f52000000000000000000000000000000000082610d1d565b60006103617f434f4e5452414354535f52454749535445520000000000000000000000000000610c7f565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b6104417f434f4e5452414354535f5245474953544552000000000000000000000000000082610d1d565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b73ffffffffffffffffffffffffffffffffffffffff8116610c4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161040e565b61044181610d9b565b60006103617f50524943455f4f5241434c4500000000000000000000000000000000000000005b6000818152600160209081526040808320548151808301909252600382527f41503100000000000000000000000000000000000000000000000000000000009282019290925273ffffffffffffffffffffffffffffffffffffffff9091169081610d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040e9190610e66565b5092915050565b60008281526001602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091559051909184917fb37614c7d254ea8d16eb81fa11dddaeb266aa8ba4917980859c7740aff30c6919190a35050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610e2257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610e4657600080fd5b9392505050565b600060208284031215610e5f57600080fd5b5035919050565b600060208083528351808285015260005b81811015610e9357858101830151858201604001528201610e77565b81811115610ea5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea264697066735822122083c228af017c6f5cf8c395cdf7a53276ff56fdd4f4313c39f680ab73bd75417364736f6c634300080a003360a06040523480156200001157600080fd5b50604051620015c4380380620015c4833981016040819052620000349162000258565b8251839083906200004d906003906020850190620000e5565b50805162000063906004906020840190620000e5565b505050620000806200007a6200008f60201b60201c565b62000093565b60ff16608052506200031a9050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620000f390620002dd565b90600052602060002090601f01602090048101928262000117576000855562000162565b82601f106200013257805160ff191683800117855562000162565b8280016001018555821562000162579182015b828111156200016257825182559160200191906001019062000145565b506200017092915062000174565b5090565b5b8082111562000170576000815560010162000175565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001b357600080fd5b81516001600160401b0380821115620001d057620001d06200018b565b604051601f8301601f19908116603f01168101908282118183101715620001fb57620001fb6200018b565b816040528381526020925086838588010111156200021857600080fd5b600091505b838210156200023c57858201830151818301840152908201906200021d565b838211156200024e5760008385830101525b9695505050505050565b6000806000606084860312156200026e57600080fd5b83516001600160401b03808211156200028657600080fd5b6200029487838801620001a1565b94506020860151915080821115620002ab57600080fd5b50620002ba86828701620001a1565b925050604084015160ff81168114620002d257600080fd5b809150509250925092565b600181811c90821680620002f257607f821691505b602082108114156200031457634e487b7160e01b600052602260045260246000fd5b50919050565b60805161128e620003366000396000610172015261128e6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d714610245578063a9059cbb14610258578063dd62ed3e1461026b578063f2fde38b146102b157600080fd5b8063715018a6146101fa5780638da5cb5b1461020257806395d89b411461022a5780639dc29fac1461023257600080fd5b8063313ce567116100d3578063313ce5671461016b578063395093511461019c57806340c10f19146101af57806370a08231146101c457600080fd5b806306fdde0314610105578063095ea7b31461012357806318160ddd1461014657806323b872dd14610158575b600080fd5b61010d6102c4565b60405161011a919061104f565b60405180910390f35b6101366101313660046110eb565b610356565b604051901515815260200161011a565b6002545b60405190815260200161011a565b610136610166366004611115565b61036c565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161011a565b6101366101aa3660046110eb565b610457565b6101c26101bd3660046110eb565b6104a0565b005b61014a6101d2366004611151565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101c261052f565b60055460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011a565b61010d6105bc565b6101c26102403660046110eb565b6105cb565b6101366102533660046110eb565b610656565b6101366102663660046110eb565b61072e565b61014a610279366004611173565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101c26102bf366004611151565b61073b565b6060600380546102d3906111a6565b80601f01602080910402602001604051908101604052809291908181526020018280546102ff906111a6565b801561034c5780601f106103215761010080835404028352916020019161034c565b820191906000526020600020905b81548152906001019060200180831161032f57829003601f168201915b5050505050905090565b600061036333848461086b565b50600192915050565b6000610379848484610a1f565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602090815260408083203384529091529020548281101561043f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61044c853385840361086b565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161036391859061049b908690611229565b61086b565b60055473ffffffffffffffffffffffffffffffffffffffff163314610521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b61052b8282610cd3565b5050565b60055473ffffffffffffffffffffffffffffffffffffffff1633146105b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b6105ba6000610df3565b565b6060600480546102d3906111a6565b60055473ffffffffffffffffffffffffffffffffffffffff16331461064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b61052b8282610e6a565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281205482811015610717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610436565b610724338585840361086b565b5060019392505050565b6000610363338484610a1f565b60055473ffffffffffffffffffffffffffffffffffffffff1633146107bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b73ffffffffffffffffffffffffffffffffffffffff811661085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610436565b61086881610df3565b50565b73ffffffffffffffffffffffffffffffffffffffff831661090d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610436565b73ffffffffffffffffffffffffffffffffffffffff82166109b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610436565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610ac2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610436565b73ffffffffffffffffffffffffffffffffffffffff8216610b65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610436565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610436565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610c5f908490611229565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cc591815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610d50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610436565b8060026000828254610d629190611229565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610d9c908490611229565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610f0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610436565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610fc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610436565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610fff908490611241565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610a12565b600060208083528351808285015260005b8181101561107c57858101830151858201604001528201611060565b8181111561108e576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146110e657600080fd5b919050565b600080604083850312156110fe57600080fd5b611107836110c2565b946020939093013593505050565b60008060006060848603121561112a57600080fd5b611133846110c2565b9250611141602085016110c2565b9150604084013590509250925092565b60006020828403121561116357600080fd5b61116c826110c2565b9392505050565b6000806040838503121561118657600080fd5b61118f836110c2565b915061119d602084016110c2565b90509250929050565b600181811c908216806111ba57607f821691505b602082108114156111f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561123c5761123c6111fa565b500190565b600082821015611253576112536111fa565b50039056fea26469706673582212200343c2cef6c2ca469c25e4abb24e7e37ea95105bc70df4cbd4741229aafc595064736f6c634300080a003360a06040523480156200001157600080fd5b506040516200339f3803806200339f833981016040819052620000349162000627565b6000805460ff191690558484848484846001600160a01b0381166200006c57604051635919af9760e11b815260040160405180910390fd5b806001600160a01b031663087376956040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d191906200068e565b6001600160a01b039081166080526001805586161580159150620000fd57506001600160a01b03841615155b80156200011257506001600160a01b03831615155b80156200012757506001600160a01b03821615155b6040518060400160405280600281526020016105a360f41b815250906200016c5760405162461bcd60e51b8152600401620001639190620006ac565b60405180910390fd5b50600580546001600160a01b038088166001600160a01b03199283168117909355600780548883169084161790556008805491871691909216179055604080516326c74fc360e01b815290516326c74fc3916004808201926020929091908290030181865afa158015620001e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020a91906200068e565b600c80546001600160a01b0319166001600160a01b03929092169190911790556b033b2e3c9fd0803ce8000000600d55620002458262000258565b60035550620007ae975050505050505050565b60408051808201909152600281526105a360f41b60208201526001600160a01b0382166200029b5760405162461bcd60e51b8152600401620001639190620006ac565b50600680546001600160a01b0319166001600160a01b038316179055620002c36000620002fa565b6040516001600160a01b038216907f0ec6cb7631d36954a05ffd646135bfd9995c71e7fa36d26abb1ad9f24a040ea190600090a250565b8062000305620003b5565b6200031191906200071a565b6002556200031e6200042e565b600d556006546002546001600160a01b03909116906342568d44906200034362000460565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401602060405180830381865afa15801562000385573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ab919062000734565b600e555042600f55565b600080600f5442620003c891906200071a565b905060006301e133806b033b2e3c9fd0803ce800000083600e54600454620003f191906200074e565b620003fd91906200074e565b62000409919062000770565b62000415919062000770565b90508060025462000427919062000793565b9250505090565b600080600f54426200044191906200071a565b90506200045a600d54600e5483620004d560201b60201c565b91505090565b6007546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015620004aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d0919062000734565b905090565b6000806301e13380620004e984866200074e565b620004f5919062000770565b6200050d906b033b2e3c9fd0803ce800000062000793565b90506200052981866200053260201b62001f941790919060201c565b95945050505050565b600082158062000540575081155b156200054f5750600062000604565b816200056960026b033b2e3c9fd0803ce800000062000770565b62000577906000196200071a565b62000583919062000770565b831115604051806040016040528060028152602001614d3160f01b81525090620005c25760405162461bcd60e51b8152600401620001639190620006ac565b506b033b2e3c9fd0803ce8000000620005dd60028262000770565b620005e984866200074e565b620005f5919062000793565b62000601919062000770565b90505b92915050565b80516001600160a01b03811681146200062257600080fd5b919050565b600080600080600060a086880312156200064057600080fd5b6200064b866200060a565b94506200065b602087016200060a565b93506200066b604087016200060a565b92506200067b606087016200060a565b9150608086015190509295509295909350565b600060208284031215620006a157600080fd5b62000601826200060a565b600060208083528351808285015260005b81811015620006db57858101830151858201604001528201620006bd565b81811115620006ee576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156200072f576200072f62000704565b500390565b6000602082840312156200074757600080fd5b5051919050565b60008160001904831182151516156200076b576200076b62000704565b500290565b6000826200078e57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620007a957620007a962000704565b500190565b608051612ba4620007fb600039600081816104fa0152818161090d01528181610b0d01528181610c4c01528181610eac015281816113ff015281816115900152611bdb0152612ba46000f3fe608060405234801561001057600080fd5b50600436106102de5760003560e01c8063609ae31711610186578063bb04b193116100e3578063d41ee0f711610097578063ef8d960311610071578063ef8d9603146105bd578063f3fdb15a146105c6578063fe14112d146105e657600080fd5b8063d41ee0f7146105a3578063dbcb313b146105ab578063e941fa78146105b457600080fd5b8063c5f956af116100c8578063c5f956af1461055d578063ca9505e41461057d578063cf33d9551461059057600080fd5b8063bb04b19314610537578063bf28068b1461054a57600080fd5b80639aa5d4621161013a578063a50cf2c81161011f578063a50cf2c8146104f5578063a7a5eccc1461051c578063b6ac642a1461052457600080fd5b80639aa5d462146104da578063a4e8273e146104ed57600080fd5b8063788c6bfe1161016b578063788c6bfe146104b75780637dfc6afe146104bf5780638456cb59146104d257600080fd5b8063609ae317146104a657806374375359146104af57600080fd5b80633e163df01161023f57806352cb995f116101f35780635664cacf116101cd5780635664cacf146104805780635b29233b146104935780635c975abb1461049b57600080fd5b806352cb995f1461045d5780635427c9381461046557806354fd4d501461047857600080fd5b806345d31f9d1161022457806345d31f9d146104385780634c19386c146104415780634d778ad11461044a57600080fd5b80633e163df01461040d5780633f4ba83a1461043057600080fd5b80632495a599116102965780632e97ca211161027b5780632e97ca21146103a757806331d8bc27146103da57806336dda7d5146103ed57600080fd5b80632495a599146103675780632954018c1461038757600080fd5b8063078c4781116102c7578063078c4781146103125780630fce70fb146103275780631e16e4fc1461032f57600080fd5b8063030dbb04146102e357806305fe138b146102ff575b600080fd5b6102ec60025481565b6040519081526020015b60405180910390f35b6102ec61030d3660046128b4565b6105ee565b6103256103203660046128e4565b6108df565b005b6102ec610a37565b61034261033d366004612901565b610a5f565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102f6565b6007546103429073ffffffffffffffffffffffffffffffffffffffff1681565b6005546103429073ffffffffffffffffffffffffffffffffffffffff1681565b6103ca6103b53660046128e4565b60096020526000908152604090205460ff1681565b60405190151581526020016102f6565b6102ec6103e836600461291a565b610a96565b6008546103429073ffffffffffffffffffffffffffffffffffffffff1681565b6103ca61041b3660046128e4565b600a6020526000908152604090205460ff1681565b610325610adf565b6102ec600e5481565b6102ec60045481565b6102ec610458366004612901565b610bcd565b6002546102ec565b6102ec610473366004612901565b610bfd565b6102ec600181565b61032561048e3660046128e4565b610c1e565b600f546102ec565b60005460ff166103ca565b6102ec600f5481565b6102ec610d0e565b6102ec610da6565b6103256104cd366004612901565b600255565b610325610e7e565b6103256104e8366004612946565b610f6a565b600b546102ec565b6103427f000000000000000000000000000000000000000000000000000000000000000081565b600d546102ec565b610325610532366004612901565b6113d1565b610325610545366004612901565b611562565b6103256105583660046128b4565b61167b565b600c546103429073ffffffffffffffffffffffffffffffffffffffff1681565b61032561058b36600461291a565b6117fb565b61032561059e3660046128e4565b611bad565b610325611f1d565b6102ec600d5481565b6102ec60105481565b6102ec60035481565b6006546103429073ffffffffffffffffffffffffffffffffffffffff1681565b6102ec611f27565b6000805460ff1615610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064015b60405180910390fd5b600260015414156106ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610658565b60026001819055604080518082019091529081527f5a30000000000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8316610756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b50600061076284610bfd565b9050600061077b601054836120a290919063ffffffff16565b905060006107898284612a2a565b6007549091506107b09073ffffffffffffffffffffffffffffffffffffffff1686836120d8565b81156107e057600c546007546107e09173ffffffffffffffffffffffffffffffffffffffff9182169116846120d8565b6008546040517f9dc29fac0000000000000000000000000000000000000000000000000000000081523360048201526024810188905273ffffffffffffffffffffffffffffffffffffffff90911690639dc29fac90604401600060405180830381600087803b15801561085257600080fd5b505af1158015610866573d6000803e3d6000fd5b50505050826002546108789190612a2a565b60025561088560006121b1565b60405186815273ffffffffffffffffffffffffffffffffffffffff86169033907fd8ae9b9ba89e637bcb66a69ac91e8f688018e81d6f92c57e02226425c8efbdf69060200160405180910390a36001805595945050505050565b6040517f5f259aba0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635f259aba90602401602060405180830381865afa158015610969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d9190612a41565b6109c3576040517f61081c1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526009602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f9181736fce85d2d4cca2e4406f10679302ae5c387180fdb62963af3cd9a24fd69190a250565b600080600f5442610a489190612a2a565b9050610a59600d54600e5483610a96565b91505090565b600b8181548110610a6f57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b6000806301e13380610aa88486612a63565b610ab29190612acf565b610ac8906b033b2e3c9fd0803ce8000000612ae3565b9050610ad48582611f94565b9150505b9392505050565b6040517fd4eb5db00000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d4eb5db090602401602060405180830381865afa158015610b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8d9190612a41565b610bc3576040517f10332dee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bcb612286565b565b6000610bd7610da6565b610bed6b033b2e3c9fd0803ce800000084612a63565b610bf79190612acf565b92915050565b60006b033b2e3c9fd0803ce8000000610c14610da6565b610bed9084612a63565b6040517f5f259aba0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635f259aba90602401602060405180830381865afa158015610ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccc9190612a41565b610d02576040517f61081c1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b81612367565b50565b6007546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da19190612afb565b905090565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3a9190612afb565b905080610e54576b033b2e3c9fd0803ce800000091505090565b806b033b2e3c9fd0803ce8000000610e6a611f27565b610e749190612a63565b610a599190612acf565b6040517f3a41ec640000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690633a41ec6490602401602060405180830381865afa158015610f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2c9190612a41565b610f62576040517fd794b1e700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bcb612478565b60005460ff1615610fd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610658565b60026001541415611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610658565b60026001819055604080518082019091529081527f5a30000000000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff83166110cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b50600354836110d9611f27565b6110e39190612ae3565b11156040518060400160405280600381526020017f505332000000000000000000000000000000000000000000000000000000000081525090611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b506007546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156111c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e79190612afb565b60075490915061120f9073ffffffffffffffffffffffffffffffffffffffff16333087612538565b6007546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152829173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561127d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a19190612afb565b6112ab9190612a2a565b60085490945073ffffffffffffffffffffffffffffffffffffffff166340c10f19846112d687610bcd565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15801561134157600080fd5b505af1158015611355573d6000803e3d6000fd5b50505050836002546113679190612ae3565b60025561137460006121b1565b604080518581526020810184905273ffffffffffffffffffffffffffffffffffffffff85169133917fd2491a9b4fe81a7cd4511e8b7b7743951b061dad5bed7da8a7795b080ee08c7e910160405180910390a35050600180555050565b6040517f5f259aba0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635f259aba90602401602060405180830381865afa15801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f9190612a41565b6114b5576040517f61081c1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201909152600381527f505333000000000000000000000000000000000000000000000000000000000060208201526064821115611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b5060108190556040518181527fd5fe46099fa396290a7f57e36c3c3c8774e2562c18ed5d1dcc0fa75071e03f1d906020015b60405180910390a150565b6040517f5f259aba0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635f259aba90602401602060405180830381865afa1580156115ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116109190612a41565b611646576040517f61081c1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fd7a183c9fe85b604c25d54bd676e0866f6c13bcca9fb9b0850213de118fdc99c90602001611557565b60005460ff16156116e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610658565b33600090815260096020908152604091829020548251808401909352600383527f50533000000000000000000000000000000000000000000000000000000000009183019190915260ff1661176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b5060075461178f9073ffffffffffffffffffffffffffffffffffffffff1682846120d8565b61179960006121b1565b816004546117a79190612ae3565b60045560405182815273ffffffffffffffffffffffffffffffffffffffff82169033907f312a5e5e1079f5dda4e95dbbd0b908b291fd5b992ef22073643ab691572c5b529060200160405180910390a35050565b60005460ff1615611868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610658565b336000908152600a6020908152604091829020548251808401909352600383527f50533000000000000000000000000000000000000000000000000000000000009183019190915260ff166118ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b5081156119b957600854600c5473ffffffffffffffffffffffffffffffffffffffff918216916340c10f19911661192085610bcd565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15801561198b57600080fd5b505af115801561199f573d6000803e3d6000fd5b50505050816002546119b19190612ae3565b600255611b45565b60006119c482610bcd565b600854600c546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529293506000929116906370a0823190602401602060405180830381865afa158015611a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a609190612afb565b905081811015611ab457905080337fef3653ded679720ab04913b6f3820be7cedc8286d42ff5dd8dff17e91bd2964c611a9883610bfd565b611aa29086612a2a565b60405190815260200160405180910390a25b600854600c546040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015260248101859052911690639dc29fac90604401600060405180830381600087803b158015611b2a57600080fd5b505af1158015611b3e573d6000803e3d6000fd5b5050505050505b611b4e816121b1565b8260046000828254611b609190612a2a565b9091555050604080518481526020810184905290810182905233907f2fe77b1c99aca6b022b8efc6e3e8dd1b48b30748709339b65c50ef3263443e099060600160405180910390a2505050565b6040517f5f259aba0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635f259aba90602401602060405180830381865afa158015611c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5b9190612a41565b611c91576040517f61081c1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663570a7af26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d009190612b14565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600381526020017f505331000000000000000000000000000000000000000000000000000000000081525090611d9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b5073ffffffffffffffffffffffffffffffffffffffff81166000908152600a6020908152604091829020548251808401909352600383527f50533400000000000000000000000000000000000000000000000000000000009183019190915260ff1615611e36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b5073ffffffffffffffffffffffffffffffffffffffff81166000818152600960209081526040808320805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009182168117909255600a90935281842080549093168117909255600b8054928301815583527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055517fe076020e7eac3915d33aec40c24f95e73eb6c9921ff89747d50aa8fd934d2c019190a250565b610bcb60006121b1565b600080600f5442611f389190612a2a565b905060006301e133806b033b2e3c9fd0803ce800000083600e54600454611f5f9190612a63565b611f699190612a63565b611f739190612acf565b611f7d9190612acf565b905080600254611f8d9190612ae3565b9250505090565b6000821580611fa1575081155b15611fae57506000610bf7565b81611fc660026b033b2e3c9fd0803ce8000000612acf565b611ff0907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612a2a565b611ffa9190612acf565b8311156040518060400160405280600281526020017f4d310000000000000000000000000000000000000000000000000000000000008152509061206b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b506b033b2e3c9fd0803ce8000000612084600282612acf565b61208e8486612a63565b6120989190612ae3565b610ad89190612acf565b60008215806120af575081155b156120bc57506000610bf7565b6127106120ca600282612b31565b61ffff1661208e8486612a63565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526121ac9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261259c565b505050565b806121ba611f27565b6121c49190612a2a565b6002556121cf610a37565b600d5560065460025473ffffffffffffffffffffffffffffffffffffffff909116906342568d44906121ff610d0e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526024820152604401602060405180830381865afa158015612258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227c9190612afb565b600e555042600f55565b60005460ff166122f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610658565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60408051808201909152600281527f5a30000000000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff82166123e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b50600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905561243460006121b1565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f0ec6cb7631d36954a05ffd646135bfd9995c71e7fa36d26abb1ad9f24a040ea190600090a250565b60005460ff16156124e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610658565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861233d3390565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526125969085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161212a565b50505050565b60006125fe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166126a89092919063ffffffff16565b8051909150156121ac578080602001905181019061261c9190612a41565b6121ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610658565b60606126b784846000856126bf565b949350505050565b606082471015612751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610658565b843b6127b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610658565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516127e29190612b52565b60006040518083038185875af1925050503d806000811461281f576040519150601f19603f3d011682016040523d82523d6000602084013e612824565b606091505b509150915061283482828661283f565b979650505050505050565b6060831561284e575081610ad8565b82511561285e5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065891906129aa565b73ffffffffffffffffffffffffffffffffffffffff81168114610d0b57600080fd5b600080604083850312156128c757600080fd5b8235915060208301356128d981612892565b809150509250929050565b6000602082840312156128f657600080fd5b8135610ad881612892565b60006020828403121561291357600080fd5b5035919050565b60008060006060848603121561292f57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561295b57600080fd5b83359250602084013561296d81612892565b929592945050506040919091013590565b60005b83811015612999578181015183820152602001612981565b838111156125965750506000910152565b60208152600082518060208401526129c981604085016020870161297e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612a3c57612a3c6129fb565b500390565b600060208284031215612a5357600080fd5b81518015158114610ad857600080fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a9b57612a9b6129fb565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612ade57612ade612aa0565b500490565b60008219821115612af657612af66129fb565b500190565b600060208284031215612b0d57600080fd5b5051919050565b600060208284031215612b2657600080fd5b8151610ad881612892565b600061ffff80841680612b4657612b46612aa0565b92169190910492915050565b60008251612b6481846020870161297e565b919091019291505056fea2646970667358221220aa576a1f3048229fbbd4b2babbd3d404feadeb799dd811619fe8b62885256f2164736f6c634300080a00336080604052600280546001600160a01b03191673c4375b7de8af5a38a93548eb8453a498222c4ff217905534801561003657600080fd5b5060405161046c38038061046c8339810160408190526100559161007a565b600080546001600160a01b0319166001600160a01b03929092169190911790556100aa565b60006020828403121561008c57600080fd5b81516001600160a01b03811681146100a357600080fd5b9392505050565b6103b3806100b96000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063bf28068b1161005b578063bf28068b1461010b578063c8cca9e514610120578063ca9505e414610175578063e958b7041461018857600080fd5b8063570a7af2146100825780636d0a1218146100cb5780636f307dc3146100eb575b600080fd5b6000546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6002546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b6001546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b61011e610119366004610303565b6101b3565b005b61011e61012e36600461032f565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61011e610183366004610351565b610243565b6100a261019636600461032f565b5060025473ffffffffffffffffffffffffffffffffffffffff1690565b6000546040517fbf28068b0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff83811660248301529091169063bf28068b90604401600060405180830381600087803b15801561022757600080fd5b505af115801561023b573d6000803e3d6000fd5b505050505050565b6000546040517fca9505e400000000000000000000000000000000000000000000000000000000815260048101859052602481018490526044810183905273ffffffffffffffffffffffffffffffffffffffff9091169063ca9505e490606401600060405180830381600087803b1580156102bd57600080fd5b505af11580156102d1573d6000803e3d6000fd5b50505050505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102fe57600080fd5b919050565b6000806040838503121561031657600080fd5b82359150610326602084016102da565b90509250929050565b60006020828403121561034157600080fd5b61034a826102da565b9392505050565b60008060006060848603121561036657600080fd5b50508135936020830135935060409092013591905056fea2646970667358221220e29e625436d382630e7a0373aafe5230ccc0f5a960595820d041897bf0d7850c64736f6c634300080a00336101206040523480156200001257600080fd5b5060405162000b1238038062000b1283398101604081905262000035916200021f565b604080518082019091526002815261049560f41b602082015261271085106200007c5760405162461bcd60e51b815260040162000073919062000256565b60405180910390fd5b50604080518082019091526002815261049560f41b6020820152612710841115620000bc5760405162461bcd60e51b815260040162000073919062000256565b50604080518082019091526002815261049560f41b6020820152612710831115620000fc5760405162461bcd60e51b815260040162000073919062000256565b5060006200012185670de0b6b3a7640000620001c160201b6200043c1790919060201c565b608081905290506200013c81670de0b6b3a7640000620002c4565b60a052620001636b033b2e3c9fd0803ce800000085620001c1602090811b6200043c17901c565b60c0526200018a6b033b2e3c9fd0803ce800000084620001c1602090811b6200043c17901c565b60e052620001b16b033b2e3c9fd0803ce800000083620001c1602090811b6200043c17901c565b61010052506200036c9350505050565b6000821580620001cf575081155b15620001de5750600062000219565b612710620001ee600282620002f4565b61ffff16620001fe848662000318565b6200020a91906200033a565b62000216919062000355565b90505b92915050565b600080600080608085870312156200023657600080fd5b505082516020840151604085015160609095015191969095509092509050565b600060208083528351808285015260005b81811015620002855785810183015185820160400152820162000267565b8181111562000298576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015620002d957620002d9620002ae565b500390565b634e487b7160e01b600052601260045260246000fd5b600061ffff808416806200030c576200030c620002de565b92169190910492915050565b6000816000190483118215151615620003355762000335620002ae565b500290565b60008219821115620003505762000350620002ae565b500190565b600082620003675762000367620002de565b500490565b60805160a05160c05160e0516101005161070162000411600039600081816101840152818161030b015261041701526000818160e70152818161025a0152818161033e01526103f401526000818161010e015281816101bc0152818161028e0152818161035f01526103d101526000818161015d01526102bc01526000818160b80152818161020d01528181610235015281816102e001526103a101526107016000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80639cd3fdb51161005b5780639cd3fdb514610109578063c8284e6d14610130578063f81d438114610158578063fc4b2b781461017f57600080fd5b806342568d441461008d57806350ced104146100b357806354fd4d50146100da5780639aec06ea146100e2575b600080fd5b6100a061009b366004610537565b6101a6565b6040519081526020015b60405180910390f35b6100a07f000000000000000000000000000000000000000000000000000000000000000081565b6100a0600181565b6100a07f000000000000000000000000000000000000000000000000000000000000000081565b6100a07f000000000000000000000000000000000000000000000000000000000000000081565b610138610397565b6040805194855260208501939093529183015260608201526080016100aa565b6100a07f000000000000000000000000000000000000000000000000000000000000000081565b6100a07f000000000000000000000000000000000000000000000000000000000000000081565b60008215806101b457508183105b156101e057507f0000000000000000000000000000000000000000000000000000000000000000610391565b6000836101ed8482610588565b6101ff90670de0b6b3a764000061059f565b610209919061060b565b90507f00000000000000000000000000000000000000000000000000000000000000008110156102ba577f000000000000000000000000000000000000000000000000000000000000000061027e827f000000000000000000000000000000000000000000000000000000000000000061059f565b610288919061060b565b6102b2907f000000000000000000000000000000000000000000000000000000000000000061061f565b915050610391565b7f00000000000000000000000000000000000000000000000000000000000000006103057f000000000000000000000000000000000000000000000000000000000000000083610588565b61032f907f000000000000000000000000000000000000000000000000000000000000000061059f565b610339919061060b565b6103837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061061f565b61038d919061061f565b9150505b92915050565b60008080806103ce7f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a764000061048d565b947f000000000000000000000000000000000000000000000000000000000000000094507f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b6000821580610449575081155b1561045657506000610391565b612710610464600282610637565b61ffff16610472848661059f565b61047c919061061f565b610486919061060b565b9392505050565b60408051808201909152600281527f4d33000000000000000000000000000000000000000000000000000000000000602082015260009082610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fc9190610658565b60405180910390fd5b50600061051360028461060b565b905082816105236127108761059f565b61052d919061061f565b61038d919061060b565b6000806040838503121561054a57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561059a5761059a610559565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156105d7576105d7610559565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261061a5761061a6105dc565b500490565b6000821982111561063257610632610559565b500190565b600061ffff8084168061064c5761064c6105dc565b92169190910492915050565b600060208083528351808285015260005b8181101561068557858101830151858201604001528201610669565b81811115610697576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea26469706673582212205428f2a5431c3c1928793ca5c2c8825fc467250326c6d5ae84382a87d1e80b2164736f6c634300080a0033496e7465726573742072617465206d6f64656c20776173206e6f742073657420636f72726563746c79426f72726f77207261746520776173206e6f74207570646174656420636f72726563746c79546f44696573656c20646f6573206e6f7420636f6d7075746520636f72726563746c79496e6465782076616c756520776173206e6f74207570646174656420636f72726563746c794578706563746564206c697175696469747920776173206e6f74207570646174656420636f72726563746c7965787065637465644c69717569646974794c696d6974206e6f742073657420636f72726563746c7954696d657374616d7020776173206e6f74207570646174656420636f72726563746c79a26469706673582212207942c7774c14e142a0142689d2f12018f84d11e556a8f6d415d0ed173fc4f07764736f6c634300080a0033";
|
|
758
|
-
|
|
759
|
-
type PoolServiceTestConstructorParams =
|
|
760
|
-
| [signer?: Signer]
|
|
761
|
-
| ConstructorParameters<typeof ContractFactory>;
|
|
762
|
-
|
|
763
|
-
const isSuperArgs = (
|
|
764
|
-
xs: PoolServiceTestConstructorParams
|
|
765
|
-
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
766
|
-
|
|
767
|
-
export class PoolServiceTest__factory extends ContractFactory {
|
|
768
|
-
constructor(...args: PoolServiceTestConstructorParams) {
|
|
769
|
-
if (isSuperArgs(args)) {
|
|
770
|
-
super(...args);
|
|
771
|
-
} else {
|
|
772
|
-
super(_abi, _bytecode, args[0]);
|
|
773
|
-
}
|
|
774
|
-
}
|
|
775
|
-
|
|
776
|
-
override deploy(
|
|
777
|
-
overrides?: Overrides & { from?: string | Promise<string> }
|
|
778
|
-
): Promise<PoolServiceTest> {
|
|
779
|
-
return super.deploy(overrides || {}) as Promise<PoolServiceTest>;
|
|
780
|
-
}
|
|
781
|
-
override getDeployTransaction(
|
|
782
|
-
overrides?: Overrides & { from?: string | Promise<string> }
|
|
783
|
-
): TransactionRequest {
|
|
784
|
-
return super.getDeployTransaction(overrides || {});
|
|
785
|
-
}
|
|
786
|
-
override attach(address: string): PoolServiceTest {
|
|
787
|
-
return super.attach(address) as PoolServiceTest;
|
|
788
|
-
}
|
|
789
|
-
override connect(signer: Signer): PoolServiceTest__factory {
|
|
790
|
-
return super.connect(signer) as PoolServiceTest__factory;
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
static readonly bytecode = _bytecode;
|
|
794
|
-
static readonly abi = _abi;
|
|
795
|
-
static createInterface(): PoolServiceTestInterface {
|
|
796
|
-
return new utils.Interface(_abi) as PoolServiceTestInterface;
|
|
797
|
-
}
|
|
798
|
-
static connect(
|
|
799
|
-
address: string,
|
|
800
|
-
signerOrProvider: Signer | Provider
|
|
801
|
-
): PoolServiceTest {
|
|
802
|
-
return new Contract(address, _abi, signerOrProvider) as PoolServiceTest;
|
|
803
|
-
}
|
|
804
|
-
}
|