diff --git a/cannonfile.toml b/cannonfile.toml index c1af297b5..a77e7a26d 100644 --- a/cannonfile.toml +++ b/cannonfile.toml @@ -27,19 +27,19 @@ defaultValue = "5000000000" [setting.rate_btc] defaultValue = "50000000000" -[import.aggregator_snx] +[clone.aggregator_snx] source = "chainlink:0.7-mock" options.rate = "<%= settings.rate_snx %>" options.timestamp = "1558469483" options.salt = "snx" -[import.aggregator_eth] +[clone.aggregator_eth] source = "chainlink:0.7-mock" options.rate = "<%= settings.rate_eth %>" options.timestamp = "1558469483" options.salt = "eth" -[import.aggregator_btc] +[clone.aggregator_btc] source = "chainlink:0.7-mock" options.rate = "<%= settings.rate_btc %>" options.timestamp = "1558469483" @@ -241,7 +241,7 @@ args = [ "<%= imports.aggregator_snx.contracts.aggregator.address %>", ] -depends = ["invoke.accept_ownership", "import.aggregator_snx"] +depends = ["invoke.accept_ownership", "clone.aggregator_snx"] [invoke.set_aggregator_eth] target = ["ExchangeRates"] @@ -253,7 +253,7 @@ args = [ "<%= imports.aggregator_eth.contracts.aggregator.address %>", ] -depends = ["invoke.accept_ownership", "import.aggregator_eth"] +depends = ["invoke.accept_ownership", "clone.aggregator_eth"] [invoke.set_aggregator_btc] target = ["ExchangeRates"] @@ -265,7 +265,7 @@ args = [ "<%= imports.aggregator_btc.contracts.aggregator.address %>", ] -depends = ["invoke.accept_ownership", "import.aggregator_btc"] +depends = ["invoke.accept_ownership", "clone.aggregator_btc"] [invoke.increase_snapshot_stale_time] target = ["SystemSettings"] diff --git a/contracts/Issuer.sol b/contracts/Issuer.sol index 597db34ab..e3d0259c3 100644 --- a/contracts/Issuer.sol +++ b/contracts/Issuer.sol @@ -93,6 +93,7 @@ contract Issuer is Owned, MixinSystemSettings, IIssuer { bytes32 private constant CONTRACT_SYNTHETIXBRIDGETOBASE = "SynthetixBridgeToBase"; bytes32 private constant CONTRACT_DEBT_MIGRATOR_ON_ETHEREUM = "DebtMigratorOnEthereum"; bytes32 private constant CONTRACT_DEBT_MIGRATOR_ON_OPTIMISM = "DebtMigratorOnOptimism"; + bytes32 private constant CONTRACT_V3_LEGACYMARKET = "LegacyMarket"; bytes32 private constant CONTRACT_EXT_AGGREGATOR_ISSUED_SYNTHS = "ext:AggregatorIssuedSynths"; bytes32 private constant CONTRACT_EXT_AGGREGATOR_DEBT_RATIO = "ext:AggregatorDebtRatio"; @@ -343,6 +344,10 @@ contract Issuer is Owned, MixinSystemSettings, IIssuer { } function _maxIssuableSynths(address _issuer) internal view returns (uint, bool) { + if (_issuer == resolver.getAddress(CONTRACT_V3_LEGACYMARKET)) { + // `uint(-1)` is uint max in older solidity versions + return (uint(-1), false); + } // What is the value of their SNX balance in sUSD (uint snxRate, bool isInvalid) = _rateAndInvalid(SNX); uint destinationValue = _snxToUSD(_collateral(_issuer), snxRate); diff --git a/contracts/PerpsV2MarketViews.sol b/contracts/PerpsV2MarketViews.sol index 60fa7670d..bcb3a6643 100644 --- a/contracts/PerpsV2MarketViews.sol +++ b/contracts/PerpsV2MarketViews.sol @@ -238,11 +238,10 @@ contract PerpsV2MarketViews is PerpsV2MarketBase, IPerpsV2MarketViews { * @return fee in sUSD decimal, and invalid boolean flag for invalid rates or dynamic fee that is * too high due to recent volatility. */ - function orderFee(int sizeDelta, IPerpsV2MarketBaseTypes.OrderType orderType) - external - view - returns (uint fee, bool invalid) - { + function orderFee( + int sizeDelta, + IPerpsV2MarketBaseTypes.OrderType orderType + ) external view returns (uint fee, bool invalid) { (uint price, bool isInvalid) = _assetPrice(); (uint dynamicFeeRate, bool tooVolatile) = _dynamicFeeRate(); @@ -252,16 +251,15 @@ contract PerpsV2MarketViews is PerpsV2MarketBase, IPerpsV2MarketViews { } uint fillPrice = _fillPrice(sizeDelta, price); - TradeParams memory params = - TradeParams({ - sizeDelta: sizeDelta, - oraclePrice: price, - fillPrice: fillPrice, - desiredFillPrice: fillPrice, - makerFee: makerFee, - takerFee: takerFee, - trackingCode: bytes32(0) - }); + TradeParams memory params = TradeParams({ + sizeDelta: sizeDelta, + oraclePrice: price, + fillPrice: fillPrice, + desiredFillPrice: fillPrice, + makerFee: makerFee, + takerFee: takerFee, + trackingCode: bytes32(0) + }); return (_orderFee(params, dynamicFeeRate), isInvalid || tooVolatile); } @@ -280,18 +278,7 @@ contract PerpsV2MarketViews is PerpsV2MarketBase, IPerpsV2MarketViews { uint tradePrice, IPerpsV2MarketBaseTypes.OrderType orderType, address sender - ) - external - view - returns ( - uint margin, - int size, - uint price, - uint liqPrice, - uint fee, - Status status - ) - { + ) external view returns (uint margin, int size, uint price, uint liqPrice, uint fee, Status status) { uint makerFee; uint takerFee; @@ -309,16 +296,15 @@ contract PerpsV2MarketViews is PerpsV2MarketBase, IPerpsV2MarketViews { } } - TradeParams memory params = - TradeParams({ - sizeDelta: sizeDelta, - oraclePrice: tradePrice, - desiredFillPrice: tradePrice, - fillPrice: _fillPrice(sizeDelta, tradePrice), - makerFee: makerFee, - takerFee: takerFee, - trackingCode: bytes32(0) - }); + TradeParams memory params = TradeParams({ + sizeDelta: sizeDelta, + oraclePrice: tradePrice, + desiredFillPrice: tradePrice, + fillPrice: _fillPrice(sizeDelta, tradePrice), + makerFee: makerFee, + takerFee: takerFee, + trackingCode: bytes32(0) + }); (Position memory newPosition, uint fee_, Status status_) = _postTradeDetails(marketState.positions(sender), params); liqPrice = _approxLiquidationPrice(newPosition, newPosition.lastPrice); @@ -333,15 +319,9 @@ contract PerpsV2MarketViews is PerpsV2MarketBase, IPerpsV2MarketViews { } /// helper to fetch the orderFee (maker/taker) bps by order type (Atomic, Delayed, Offchain). - function _makerTakeFeeByOrderType(IPerpsV2MarketBaseTypes.OrderType orderType) - internal - view - returns ( - uint makerFee, - uint takerFee, - bool invalid - ) - { + function _makerTakeFeeByOrderType( + IPerpsV2MarketBaseTypes.OrderType orderType + ) internal view returns (uint makerFee, uint takerFee, bool invalid) { bytes32 marketKey = _marketKey(); invalid = false; @@ -385,15 +365,14 @@ contract PerpsV2MarketViews is PerpsV2MarketBase, IPerpsV2MarketViews { // substitute with: profitLoss = (price - last-price) * positionSize // and also with: funding = netFundingPerUnit * positionSize // we get: margin + (price - last-price) * positionSize + netFundingPerUnit * positionSize = liquidationMargin - // moving around: price = lastPrice + (liquidationMargin - margin - liqPremium) / positionSize - netFundingPerUnit - int result = - int(position.lastPrice) - .add( + // moving around: price = lastPrice + (liquidationMargin - (margin - liqPremium)) / positionSize - netFundingPerUnit + int result = int(position.lastPrice) + .add( int(_liquidationMargin(position.size, currentPrice)) .sub(int(position.margin).sub(int(_liquidationPremium(position.size, currentPrice)))) .divideDecimal(position.size) ) - .sub(_netFundingPerUnit(position.lastFundingIndex, currentPrice)); + .sub(_netFundingPerUnit(position.lastFundingIndex, currentPrice)); // If the user has leverage less than 1, their liquidation price may actually be negative; return 0 instead. return uint(_max(0, result)); @@ -407,8 +386,9 @@ contract PerpsV2MarketViews is PerpsV2MarketBase, IPerpsV2MarketViews { } // see comment explaining this calculation in _positionDebtCorrection() int priceWithFunding = int(price).add(_nextFundingEntry(price)); - int totalDebt = - int(marketState.marketSkew()).multiplyDecimal(priceWithFunding).add(marketState.entryDebtCorrection()); + int totalDebt = int(marketState.marketSkew()).multiplyDecimal(priceWithFunding).add( + marketState.entryDebtCorrection() + ); return uint(_max(totalDebt, 0)); } } diff --git a/contracts/migrations/Migration_Han.sol b/contracts/migrations/Migration_Han.sol new file mode 100644 index 000000000..360349446 --- /dev/null +++ b/contracts/migrations/Migration_Han.sol @@ -0,0 +1,143 @@ +pragma solidity ^0.5.16; + +import "../BaseMigration.sol"; +import "../AddressResolver.sol"; +import "../SystemStatus.sol"; +import "../Issuer.sol"; +import "../SystemSettings.sol"; +import "../CollateralManager.sol"; + +interface ISynthetixNamedContract { + // solhint-disable func-name-mixedcase + function CONTRACT_NAME() external view returns (bytes32); +} + +// solhint-disable contract-name-camelcase +contract Migration_Han is BaseMigration { + // https://etherscan.io/address/0xEb3107117FEAd7de89Cd14D463D340A2E6917769; + address public constant OWNER = 0xEb3107117FEAd7de89Cd14D463D340A2E6917769; + + // ---------------------------- + // EXISTING SYNTHETIX CONTRACTS + // ---------------------------- + + // https://etherscan.io/address/0x823bE81bbF96BEc0e25CA13170F5AaCb5B79ba83 + AddressResolver public constant addressresolver_i = AddressResolver(0x823bE81bbF96BEc0e25CA13170F5AaCb5B79ba83); + // https://etherscan.io/address/0x696c905F8F8c006cA46e9808fE7e00049507798F + SystemStatus public constant systemstatus_i = SystemStatus(0x696c905F8F8c006cA46e9808fE7e00049507798F); + // https://etherscan.io/address/0x7A1b3DB73E5B8c58EDC8A821890005064f2B83Fd + Issuer public constant issuer_i = Issuer(0x7A1b3DB73E5B8c58EDC8A821890005064f2B83Fd); + + // ---------------------------------- + // NEW CONTRACTS DEPLOYED TO BE ADDED + // ---------------------------------- + + // https://etherscan.io/address/0x7A1b3DB73E5B8c58EDC8A821890005064f2B83Fd + address public constant new_Issuer_contract = 0x7A1b3DB73E5B8c58EDC8A821890005064f2B83Fd; + + constructor() public BaseMigration(OWNER) {} + + function contractsRequiringOwnership() public pure returns (address[] memory contracts) { + contracts = new address[](3); + contracts[0] = address(addressresolver_i); + contracts[1] = address(systemstatus_i); + contracts[2] = address(issuer_i); + } + + function migrate() external onlyOwner { + // ACCEPT OWNERSHIP for all contracts that require ownership to make changes + acceptAll(); + + // MIGRATION + // Import all new contracts into the address resolver; + addressresolver_importAddresses_0(); + // Rebuild the resolver caches in all MixinResolver contracts - batch 1; + addressresolver_rebuildCaches_1(); + // Rebuild the resolver caches in all MixinResolver contracts - batch 2; + addressresolver_rebuildCaches_2(); + // Ensure Issuer contract can suspend issuance - see SIP-165; + systemstatus_i.updateAccessControl("Issuance", new_Issuer_contract, true, false); + // Add synths to the Issuer contract - batch 1; + issuer_addSynths_5(); + + // NOMINATE OWNERSHIP back to owner for aforementioned contracts + nominateAll(); + } + + function acceptAll() internal { + address[] memory contracts = contractsRequiringOwnership(); + for (uint i = 0; i < contracts.length; i++) { + Owned(contracts[i]).acceptOwnership(); + } + } + + function nominateAll() internal { + address[] memory contracts = contractsRequiringOwnership(); + for (uint i = 0; i < contracts.length; i++) { + returnOwnership(contracts[i]); + } + } + + function addressresolver_importAddresses_0() internal { + bytes32[] memory addressresolver_importAddresses_names_0_0 = new bytes32[](1); + addressresolver_importAddresses_names_0_0[0] = bytes32("Issuer"); + address[] memory addressresolver_importAddresses_destinations_0_1 = new address[](1); + addressresolver_importAddresses_destinations_0_1[0] = address(new_Issuer_contract); + addressresolver_i.importAddresses( + addressresolver_importAddresses_names_0_0, + addressresolver_importAddresses_destinations_0_1 + ); + } + + function addressresolver_rebuildCaches_1() internal { + MixinResolver[] memory addressresolver_rebuildCaches_destinations_1_0 = new MixinResolver[](20); + addressresolver_rebuildCaches_destinations_1_0[0] = MixinResolver(0xc5f0b4194455e0C175ab68C501400e46C7203504); + addressresolver_rebuildCaches_destinations_1_0[1] = MixinResolver(0xFAd53Cc9480634563E8ec71E8e693Ffd07981d38); + addressresolver_rebuildCaches_destinations_1_0[2] = MixinResolver(0x89FCb32F29e509cc42d0C8b6f058C993013A843F); + addressresolver_rebuildCaches_destinations_1_0[3] = MixinResolver(0x8e9757479D5ad4E7f9d951B60d39F5220b893d6c); + addressresolver_rebuildCaches_destinations_1_0[4] = MixinResolver(0xf79603a71144e415730C1A6f57F366E4Ea962C00); + addressresolver_rebuildCaches_destinations_1_0[5] = MixinResolver(0x83105D7CDd2fd9b8185BFF1cb56bB1595a618618); + addressresolver_rebuildCaches_destinations_1_0[6] = MixinResolver(0xd1cad1A569E70d2Df4C8ed43d3cC93DBE16285dE); + addressresolver_rebuildCaches_destinations_1_0[7] = MixinResolver(0xaeA0065E146FD75Dc24465961a583827284D405a); + addressresolver_rebuildCaches_destinations_1_0[8] = MixinResolver(0x9f231dBE53D460f359B2B8CC47574493caA5B7Bf); + addressresolver_rebuildCaches_destinations_1_0[9] = MixinResolver(0xeAcaEd9581294b1b5cfb6B941d4B8B81B2005437); + addressresolver_rebuildCaches_destinations_1_0[10] = MixinResolver(0x39Ea01a0298C315d149a490E34B59Dbf2EC7e48F); + addressresolver_rebuildCaches_destinations_1_0[11] = MixinResolver(0x94f864e55c77E07C2C7BF7bFBc334b7a8123442A); + addressresolver_rebuildCaches_destinations_1_0[12] = MixinResolver(0xe533139Af961c9747356D947838c98451015e234); + addressresolver_rebuildCaches_destinations_1_0[13] = MixinResolver(0x38c8A4d93757D3D2E0110Cfb5f18B9cC293e0fdA); + addressresolver_rebuildCaches_destinations_1_0[14] = MixinResolver(0x10A5F7D9D65bCc2734763444D4940a31b109275f); + addressresolver_rebuildCaches_destinations_1_0[15] = MixinResolver(0xa8E31E3C38aDD6052A9407298FAEB8fD393A6cF9); + addressresolver_rebuildCaches_destinations_1_0[16] = MixinResolver(0xE1cc2332852B2Ac0dA59A1f9D3051829f4eF3c1C); + addressresolver_rebuildCaches_destinations_1_0[17] = MixinResolver(0xfb020CA7f4e8C4a5bBBe060f59a249c6275d2b69); + addressresolver_rebuildCaches_destinations_1_0[18] = MixinResolver(0xdc883b9d9Ee16f74bE08826E68dF4C9D9d26e8bD); + addressresolver_rebuildCaches_destinations_1_0[19] = MixinResolver(0xBb5b03E920cF702De5A3bA9Fc1445aF4B3919c88); + addressresolver_i.rebuildCaches(addressresolver_rebuildCaches_destinations_1_0); + } + + function addressresolver_rebuildCaches_2() internal { + MixinResolver[] memory addressresolver_rebuildCaches_destinations_2_0 = new MixinResolver[](7); + addressresolver_rebuildCaches_destinations_2_0[0] = MixinResolver(0xdAe6C79c46aB3B280Ca28259000695529cbD1339); + addressresolver_rebuildCaches_destinations_2_0[1] = MixinResolver(0x1cB004a8e84a5CE95C1fF895EE603BaC8EC506c7); + addressresolver_rebuildCaches_destinations_2_0[2] = MixinResolver(0x5D4C724BFe3a228Ff0E29125Ac1571FE093700a4); + addressresolver_rebuildCaches_destinations_2_0[3] = MixinResolver(0x07C1E81C345A7c58d7c24072EFc5D929BD0647AD); + addressresolver_rebuildCaches_destinations_2_0[4] = MixinResolver(0x067e398605E84F2D0aEEC1806e62768C5110DCc6); + addressresolver_rebuildCaches_destinations_2_0[5] = MixinResolver(new_Issuer_contract); + addressresolver_rebuildCaches_destinations_2_0[6] = MixinResolver(0x7A3d898b717e50a96fd8b232E9d15F0A547A7eeb); + addressresolver_i.rebuildCaches(addressresolver_rebuildCaches_destinations_2_0); + } + + function issuer_addSynths_5() internal { + ISynth[] memory issuer_addSynths_synthsToAdd_5_0 = new ISynth[](10); + issuer_addSynths_synthsToAdd_5_0[0] = ISynth(0x10A5F7D9D65bCc2734763444D4940a31b109275f); + issuer_addSynths_synthsToAdd_5_0[1] = ISynth(0xa8E31E3C38aDD6052A9407298FAEB8fD393A6cF9); + issuer_addSynths_synthsToAdd_5_0[2] = ISynth(0xE1cc2332852B2Ac0dA59A1f9D3051829f4eF3c1C); + issuer_addSynths_synthsToAdd_5_0[3] = ISynth(0xfb020CA7f4e8C4a5bBBe060f59a249c6275d2b69); + issuer_addSynths_synthsToAdd_5_0[4] = ISynth(0xdc883b9d9Ee16f74bE08826E68dF4C9D9d26e8bD); + issuer_addSynths_synthsToAdd_5_0[5] = ISynth(0xBb5b03E920cF702De5A3bA9Fc1445aF4B3919c88); + issuer_addSynths_synthsToAdd_5_0[6] = ISynth(0xdAe6C79c46aB3B280Ca28259000695529cbD1339); + issuer_addSynths_synthsToAdd_5_0[7] = ISynth(0x1cB004a8e84a5CE95C1fF895EE603BaC8EC506c7); + issuer_addSynths_synthsToAdd_5_0[8] = ISynth(0x5D4C724BFe3a228Ff0E29125Ac1571FE093700a4); + issuer_addSynths_synthsToAdd_5_0[9] = ISynth(0x07C1E81C345A7c58d7c24072EFc5D929BD0647AD); + issuer_i.addSynths(issuer_addSynths_synthsToAdd_5_0); + } +} diff --git a/contracts/migrations/Migration_HanOptimism.sol b/contracts/migrations/Migration_HanOptimism.sol new file mode 100644 index 000000000..db4ce44e6 --- /dev/null +++ b/contracts/migrations/Migration_HanOptimism.sol @@ -0,0 +1,134 @@ +pragma solidity ^0.5.16; + +import "../BaseMigration.sol"; +import "../AddressResolver.sol"; +import "../SystemStatus.sol"; +import "../Issuer.sol"; + +interface ISynthetixNamedContract { + // solhint-disable func-name-mixedcase + function CONTRACT_NAME() external view returns (bytes32); +} + +// solhint-disable contract-name-camelcase +contract Migration_HanOptimism is BaseMigration { + // https://explorer.optimism.io/address/0x6d4a64C57612841c2C6745dB2a4E4db34F002D20; + address public constant OWNER = 0x6d4a64C57612841c2C6745dB2a4E4db34F002D20; + + // ---------------------------- + // EXISTING SYNTHETIX CONTRACTS + // ---------------------------- + + // https://explorer.optimism.io/address/0x95A6a3f44a70172E7d50a9e28c85Dfd712756B8C + AddressResolver public constant addressresolver_i = AddressResolver(0x95A6a3f44a70172E7d50a9e28c85Dfd712756B8C); + // https://explorer.optimism.io/address/0xE8c41bE1A167314ABAF2423b72Bf8da826943FFD + SystemStatus public constant systemstatus_i = SystemStatus(0xE8c41bE1A167314ABAF2423b72Bf8da826943FFD); + // https://explorer.optimism.io/address/0x49acf95f875984fF57E1bB8b9bA49c5487C133A7 + Issuer public constant issuer_i = Issuer(0x49acf95f875984fF57E1bB8b9bA49c5487C133A7); + + // ---------------------------------- + // NEW CONTRACTS DEPLOYED TO BE ADDED + // ---------------------------------- + + // https://explorer.optimism.io/address/0x49acf95f875984fF57E1bB8b9bA49c5487C133A7 + address public constant new_Issuer_contract = 0x49acf95f875984fF57E1bB8b9bA49c5487C133A7; + + constructor() public BaseMigration(OWNER) {} + + function contractsRequiringOwnership() public pure returns (address[] memory contracts) { + contracts = new address[](3); + contracts[0] = address(addressresolver_i); + contracts[1] = address(systemstatus_i); + contracts[2] = address(issuer_i); + } + + function migrate() external onlyOwner { + // ACCEPT OWNERSHIP for all contracts that require ownership to make changes + acceptAll(); + + // MIGRATION + // Import all new contracts into the address resolver; + addressresolver_importAddresses_0(); + // Import all new contracts into the address resolver; + addressresolver_importAddresses_1(); + // Rebuild the resolver caches in all MixinResolver contracts - batch 1; + addressresolver_rebuildCaches_2(); + // Ensure Issuer contract can suspend issuance - see SIP-165; + systemstatus_i.updateAccessControl("Issuance", new_Issuer_contract, true, false); + // Add synths to the Issuer contract - batch 1; + issuer_addSynths_5(); + + // NOMINATE OWNERSHIP back to owner for aforementioned contracts + nominateAll(); + } + + function acceptAll() internal { + address[] memory contracts = contractsRequiringOwnership(); + for (uint i = 0; i < contracts.length; i++) { + Owned(contracts[i]).acceptOwnership(); + } + } + + function nominateAll() internal { + address[] memory contracts = contractsRequiringOwnership(); + for (uint i = 0; i < contracts.length; i++) { + returnOwnership(contracts[i]); + } + } + + function addressresolver_importAddresses_0() internal { + bytes32[] memory addressresolver_importAddresses_names_0_0 = new bytes32[](1); + addressresolver_importAddresses_names_0_0[0] = bytes32("Issuer"); + address[] memory addressresolver_importAddresses_destinations_0_1 = new address[](1); + addressresolver_importAddresses_destinations_0_1[0] = address(new_Issuer_contract); + addressresolver_i.importAddresses( + addressresolver_importAddresses_names_0_0, + addressresolver_importAddresses_destinations_0_1 + ); + } + + function addressresolver_importAddresses_1() internal { + bytes32[] memory addressresolver_importAddresses_names_1_0 = new bytes32[](1); + addressresolver_importAddresses_names_1_0[0] = bytes32("Issuer"); + address[] memory addressresolver_importAddresses_destinations_1_1 = new address[](1); + addressresolver_importAddresses_destinations_1_1[0] = address(new_Issuer_contract); + addressresolver_i.importAddresses( + addressresolver_importAddresses_names_1_0, + addressresolver_importAddresses_destinations_1_1 + ); + } + + function addressresolver_rebuildCaches_2() internal { + MixinResolver[] memory addressresolver_rebuildCaches_destinations_2_0 = new MixinResolver[](20); + addressresolver_rebuildCaches_destinations_2_0[0] = MixinResolver(0x3f2A1F997Ef089798d19473D96be484Aeb3E4ECf); + addressresolver_rebuildCaches_destinations_2_0[1] = MixinResolver(0x5Fc9B8d2B7766f061bD84a41255fD1A76Fd1FAa2); + addressresolver_rebuildCaches_destinations_2_0[2] = MixinResolver(0x45c55BF488D3Cb8640f12F63CbeDC027E8261E79); + addressresolver_rebuildCaches_destinations_2_0[3] = MixinResolver(0xB589Af3f2e3377A9a57da74bE1b6598926479505); + addressresolver_rebuildCaches_destinations_2_0[4] = MixinResolver(0xF4EebDD0704021eF2a6Bbe993fdf93030Cd784b4); + addressresolver_rebuildCaches_destinations_2_0[5] = MixinResolver(0xf9FE3607e6d19D8dC690DD976061a91D4A0db30B); + addressresolver_rebuildCaches_destinations_2_0[6] = MixinResolver(0x96bDD51Cd421CD84123577Fe5Ea44A45Dacf01BA); + addressresolver_rebuildCaches_destinations_2_0[7] = MixinResolver(0x24b4b6703a2eE7bA75a4Fc859B606F0bbaeef4EA); + addressresolver_rebuildCaches_destinations_2_0[8] = MixinResolver(0x803FD1d99C3a6cbcbABAB79C44e108dC2fb67102); + addressresolver_rebuildCaches_destinations_2_0[9] = MixinResolver(0x7322e8F6cB6c6a7B4e6620C486777fcB9Ea052a4); + addressresolver_rebuildCaches_destinations_2_0[10] = MixinResolver(0x136b1EC699c62b0606854056f02dC7Bb80482d63); + addressresolver_rebuildCaches_destinations_2_0[11] = MixinResolver(0xA6bc30d854c2647574921c4AF442008DB7d32ad5); + addressresolver_rebuildCaches_destinations_2_0[12] = MixinResolver(0xA997BD647AEe62Ef03b41e6fBFAdaB43d8E57535); + addressresolver_rebuildCaches_destinations_2_0[13] = MixinResolver(0x64EA298C622c628C8b4C596c1e4403eb5AFcFff7); + addressresolver_rebuildCaches_destinations_2_0[14] = MixinResolver(0xDfA2d3a0d32F870D87f8A0d7AA6b9CdEB7bc5AdB); + addressresolver_rebuildCaches_destinations_2_0[15] = MixinResolver(0xe9dceA0136FEFC76c4E639Ec60CCE70482E2aCF7); + addressresolver_rebuildCaches_destinations_2_0[16] = MixinResolver(0x421DEF861D623F7123dfE0878D86E9576cbb3975); + addressresolver_rebuildCaches_destinations_2_0[17] = MixinResolver(0xdEdb0b04AFF1525bb4B6167F00e61601690c1fF2); + addressresolver_rebuildCaches_destinations_2_0[18] = MixinResolver(0x15E7D4972a3E477878A5867A47617122BE2d1fF0); + addressresolver_rebuildCaches_destinations_2_0[19] = MixinResolver(new_Issuer_contract); + addressresolver_i.rebuildCaches(addressresolver_rebuildCaches_destinations_2_0); + } + + function issuer_addSynths_5() internal { + ISynth[] memory issuer_addSynths_synthsToAdd_5_0 = new ISynth[](4); + issuer_addSynths_synthsToAdd_5_0[0] = ISynth(0xDfA2d3a0d32F870D87f8A0d7AA6b9CdEB7bc5AdB); + issuer_addSynths_synthsToAdd_5_0[1] = ISynth(0xe9dceA0136FEFC76c4E639Ec60CCE70482E2aCF7); + issuer_addSynths_synthsToAdd_5_0[2] = ISynth(0x421DEF861D623F7123dfE0878D86E9576cbb3975); + issuer_addSynths_synthsToAdd_5_0[3] = ISynth(0xdEdb0b04AFF1525bb4B6167F00e61601690c1fF2); + issuer_i.addSynths(issuer_addSynths_synthsToAdd_5_0); + } +} diff --git a/package-lock.json b/package-lock.json index fcd27bfef..bfa8c5a21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,7 +59,7 @@ "execa": "^4.1.0", "fs-extra": "^9.0.1", "hardhat": "^2.12.7", - "hardhat-cannon": "^2.12.4", + "hardhat-cannon": "^2.21.0", "hardhat-gas-reporter": "^1.0.9", "hardhat-interact": "^0.2.3", "husky": "^4.3.0", @@ -91,16 +91,18 @@ } }, "node_modules/@adraffy/ens-normalize": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz", - "integrity": "sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==", - "dev": true + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "dev": true, + "license": "MIT" }, "node_modules/@assemblyscript/loader": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@babel/code-frame": { "version": "7.16.7", @@ -434,6 +436,13 @@ "node": ">=10.0.0" } }, + "node_modules/@endo/env-options": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@endo/env-options/-/env-options-1.1.8.tgz", + "integrity": "sha512-Xtxw9n33I4guo8q0sDyZiRuxlfaopM454AKiELgU7l3tqsylCut6IBZ0fPy4ltSHsBib7M3yF7OEMoIuLwzWVg==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/@ensdomains/address-encoder": { "version": "0.1.9", "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", @@ -1563,7 +1572,104 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-3.0.0.tgz", "integrity": "sha512-td6ZUkz2oS3VeleBcN+m//Q6HlCFCPrnI0FZhrt/h4XqLEdOyYp2u21nd8MdsR+WJy5r9PTDaHTDDfhf4H4l6Q==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", @@ -1664,27 +1770,33 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.2" + "@noble/hashes": "1.7.1" + }, + "engines": { + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 16" + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -2520,31 +2632,36 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -2554,31 +2671,36 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@scure/base": { "version": "1.1.5", @@ -3746,7 +3868,8 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/lru-cache": { "version": "5.1.1", @@ -3763,7 +3886,8 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "17.0.21", @@ -3774,7 +3898,8 @@ "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -3823,49 +3948,71 @@ } }, "node_modules/@usecannon/builder": { - "version": "2.12.4", - "resolved": "https://registry.npmjs.org/@usecannon/builder/-/builder-2.12.4.tgz", - "integrity": "sha512-r4Sr0unFvaPZL6d33Ra5g/L5znp0QRqs+pHwqF8MdRZzpTQOd4QlL5yTHfERjjnpXeJ5aZN+/jmwnAYgCOIv5g==", + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@usecannon/builder/-/builder-2.21.1.tgz", + "integrity": "sha512-H2RoSvBTEC7QOcvaRQ/6Ua6UAvyL9VxUaai6azMACXT53iLLD2by89ZfdXF5NWQHCFLHXzYGJ2fM1PYd1ZYadg==", "dev": true, + "license": "MIT", "dependencies": { - "@synthetixio/router": "^3.3.7", - "axios": "^1.6.7", - "axios-retry": "^4.0.0", + "@usecannon/router": "^4.1.2", + "@usecannon/web-solc": "0.5.1", + "acorn": "^8.14.0", + "axios": "^1.7.2", + "axios-retry": "^4.4.2", "buffer": "^6.0.3", - "debug": "^4.3.4", + "chalk": "^4.1.2", + "debug": "^4.3.6", + "deep-freeze": "^0.0.1", "form-data": "^4.0.0", + "fuse.js": "^7.0.0", "lodash": "^4.17.21", "pako": "^2.1.0", "promise-events": "^0.2.4", - "typedoc-plugin-markdown": "^3.17.1", + "rfdc": "^1.4.1", + "ses": "^1.10.0", "typestub-ipfs-only-hash": "^4.0.0", - "viem": "^2.9.3", - "zod": "^3.22.4" + "viem": "^2.21.15", + "zod": "^3.23.6" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@usecannon/builder/node_modules/@synthetixio/router": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@synthetixio/router/-/router-3.3.7.tgz", - "integrity": "sha512-4/LedFeeM1QkdbErftZyoJ+9A1K+EUQZplwA4LVy5aBomHGPKFLKHxW0bCxzjAp9eeq0CN28rd6dxv4bSmgGBQ==", + "node_modules/@usecannon/builder/node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@usecannon/builder/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/keccak256": "^5.7.0", - "debug": "^4.3.4", - "mustache": "^4.2.0" + "color-convert": "^2.0.1" }, - "peerDependencies": { - "hardhat": "^2.0.0", - "solc": "^0.8.17" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@usecannon/builder/node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "dev": true, + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -3891,16 +4038,73 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, + "node_modules/@usecannon/builder/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@usecannon/builder/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@usecannon/builder/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@usecannon/builder/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/@usecannon/builder/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -3910,84 +4114,77 @@ "node": ">= 6" } }, + "node_modules/@usecannon/builder/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@usecannon/builder/node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", - "dev": true - }, - "node_modules/@usecannon/builder/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } + "license": "(MIT AND Zlib)" }, - "node_modules/@usecannon/builder/node_modules/solc": { - "version": "0.8.25", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.25.tgz", - "integrity": "sha512-7P0TF8gPeudl1Ko3RGkyY6XVCxe2SdD/qQhtns1vl3yAbK/PDifKDLHGtx1t7mX3LgR7ojV7Fg/Kc6Q9D2T8UQ==", + "node_modules/@usecannon/builder/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "command-exists": "^1.2.8", - "commander": "^8.1.0", - "follow-redirects": "^1.12.1", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solc.js" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=8" } }, "node_modules/@usecannon/cli": { - "version": "2.12.4", - "resolved": "https://registry.npmjs.org/@usecannon/cli/-/cli-2.12.4.tgz", - "integrity": "sha512-BOTU0UCV1vJaEcGcq2GLEb7ica+xecdPyjXNClnR+HPq6dcIjd56juev64rSbzkGoDWEM9ENsWKXHa3X8NRDag==", + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@usecannon/cli/-/cli-2.21.1.tgz", + "integrity": "sha512-fV51zUHO5BM+ruLwbPMIgrwfwT5Tbqi3eW8gj0Vsw7lcvQ2MxinNZTFamqZgpeP77xWC1u/cGkolV0v8hk0ckg==", "dev": true, + "license": "MIT", "dependencies": { "@iarna/toml": "^3.0.0", - "@synthetixio/wei": "^2.74.1", - "@usecannon/builder": "2.12.4", - "abitype": "^1.0.0", + "@usecannon/builder": "2.21.1", + "abitype": "^1.0.5", "chalk": "^4.1.2", - "commander": "^9.5.0", - "debug": "^4.3.4", + "commander": "^12.1.0", + "debug": "^4.3.6", "eth-provider": "^0.13.6", - "fastq": "^1.15.0", - "fs-extra": "^10.1.0", + "fs-extra": "^11.2.0", + "glob": "^11.0.0", "lodash": "^4.17.21", "prompts": "^2.4.2", - "semver": "^7.3.7", - "table": "^6.8.0", - "tildify": "2.0.0", + "semver": "^7.6.3", + "table": "^6.8.2", + "tildify": "3.0.0", "untildify": "^4.0.0", - "viem": "^2.9.3", + "viem": "^2.21.15", "znv": "^0.4.0", - "zod": "^3.22.4" + "zod": "^3.23.8" }, "bin": { "cannon": "bin/cannon.js" } }, "node_modules/@usecannon/cli/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -3999,6 +4196,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -4008,6 +4206,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4023,15 +4222,27 @@ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/@usecannon/cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/@usecannon/cli/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4048,6 +4259,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -4059,35 +4271,81 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@usecannon/cli/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.20.0 || >=14" + "node": ">=18" + } + }, + "node_modules/@usecannon/cli/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/@usecannon/cli/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@usecannon/cli/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" + } + }, + "node_modules/@usecannon/cli/node_modules/glob": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@usecannon/cli/node_modules/has-flag": { @@ -4095,6 +4353,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -4104,6 +4363,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -4112,13 +4372,54 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@usecannon/cli/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@usecannon/cli/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@usecannon/cli/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, "node_modules/@usecannon/cli/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -4136,6 +4437,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4150,6 +4452,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -4162,6 +4465,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -4170,10 +4474,11 @@ } }, "node_modules/@usecannon/cli/node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -4190,10 +4495,48 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, + "node_modules/@usecannon/router": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@usecannon/router/-/router-4.1.3.tgz", + "integrity": "sha512-s6YfUovQoh1bW10LWHhrRQHUd+IK1L69daqBa+kGxMGpGwmx12LqjUdT+inB2YjtbYy7FLaLd+DV6tegIi2wXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "debug": "^4.3.7", + "mustache": "^4.2.0" + } + }, + "node_modules/@usecannon/router/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@usecannon/web-solc": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@usecannon/web-solc/-/web-solc-0.5.1.tgz", + "integrity": "sha512-wK8J1snp1ikYzpxA8LzhQwp+6cvmLDnFG2EaMLmqtQZD/FIz7xh8IaSgHUliwDBm9zdsPEIvXvhDvanyZ7IBuw==", + "dev": true + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -4368,10 +4711,11 @@ } }, "node_modules/abitype": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.2.tgz", - "integrity": "sha512-aFt4k2H+eiAKy/zxtnORa9iIb10BMBeWL18l8v4+QuwYEBXPxxjSB1bFZCzQmKPoj8m7j68K705l3uY+E2gAjg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/wevm" }, @@ -4643,13 +4987,6 @@ "node": ">=4" } }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", - "dev": true, - "peer": true - }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -4926,10 +5263,11 @@ } }, "node_modules/axios-retry": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-4.1.0.tgz", - "integrity": "sha512-svdth4H00yhlsjBbjfLQ/sMLkXqeLxhiFC1nE1JtkN/CIssGxqk0UwTEdrVjwA2gr3yJkAulwvDSIm4z4HyPvg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-4.5.0.tgz", + "integrity": "sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "is-retry-allowed": "^2.2.0" }, @@ -5073,6 +5411,7 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^6.0.3", "inherits": "^2.0.4", @@ -5098,6 +5437,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -5521,6 +5861,7 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", @@ -5538,6 +5879,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -5547,6 +5889,7 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6634,6 +6977,7 @@ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, + "license": "MIT", "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -6650,6 +6994,7 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6702,6 +7047,13 @@ "node": ">=6" } }, + "node_modules/deep-freeze": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", + "integrity": "sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==", + "dev": true, + "license": "public domain" + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -6963,6 +7315,13 @@ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", "dev": true }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -7125,7 +7484,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/errno": { "version": "0.1.8", @@ -8340,10 +8700,11 @@ } }, "node_modules/eth-provider": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/eth-provider/-/eth-provider-0.13.6.tgz", - "integrity": "sha512-/i0qSQby/rt3CCZrNVlgBdCUYQBwULStFRlBt7+ULNVpwbsYWl9VWXFaQxsbJLOo0x7swRS3OknIdlxlunsGJw==", + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/eth-provider/-/eth-provider-0.13.7.tgz", + "integrity": "sha512-D07HcKBQ0+liERDbkwpex03Y5D7agOMBv8NMkGu0obmD+vHzP9q8jI/tkZMfYAhbfXwpudEgXKiJODXH5UQu7g==", "dev": true, + "license": "GPL-3.0", "dependencies": { "ethereum-provider": "0.7.7", "events": "3.3.0", @@ -8358,6 +8719,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -8367,6 +8729,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -8460,6 +8823,7 @@ "resolved": "https://registry.npmjs.org/ethereum-provider/-/ethereum-provider-0.7.7.tgz", "integrity": "sha512-ulbjKgu1p2IqtZqNTNfzXysvFJrMR3oTmWEEX3DnoEae7WLd4MkY4u82kvXhxA2C171rK8IVlcodENX7TXvHTA==", "dev": true, + "license": "GPL-3.0", "dependencies": { "events": "3.3.0" } @@ -9218,6 +9582,23 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -9391,6 +9772,36 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -9528,6 +9939,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/fuse.js": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", + "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -9814,6 +10235,7 @@ "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-2.0.1.tgz", "integrity": "sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA==", "dev": true, + "license": "MIT", "dependencies": { "sparse-array": "^1.3.1", "uint8arrays": "^3.0.0" @@ -9828,6 +10250,7 @@ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } @@ -9890,6 +10313,7 @@ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -9970,18 +10394,19 @@ } }, "node_modules/hardhat-cannon": { - "version": "2.12.4", - "resolved": "https://registry.npmjs.org/hardhat-cannon/-/hardhat-cannon-2.12.4.tgz", - "integrity": "sha512-VW7nN6KM+07r/uxfpSX5Wdk+ngejLDXZo6fe2D+DuyACGy8vo/y2LdN4GEzHU4MAL6AIKMyRHC/01+VIomtq3w==", + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/hardhat-cannon/-/hardhat-cannon-2.21.1.tgz", + "integrity": "sha512-MXGDFpu9WBelCEiY2y7p28HjdzwjYsB/yrsGlZFCD55Imk0cbmZE2swKrs1PSP8IA8PVEv5aM+gd7cszHA1hnA==", "dev": true, + "license": "MIT", "dependencies": { "@iarna/toml": "^3.0.0", - "@usecannon/builder": "2.12.4", - "@usecannon/cli": "2.12.4", + "@usecannon/builder": "2.21.1", + "@usecannon/cli": "2.21.1", "chalk": "^4.1.2", - "debug": "^4.3.3", - "fs-extra": "^10.0.1", - "viem": "^2.9.3" + "debug": "^4.3.6", + "fs-extra": "^11.2.0", + "viem": "^2.21.15" }, "peerDependencies": { "hardhat": ">=2.0.0" @@ -10036,18 +10461,37 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/hardhat-cannon/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/hardhat-cannon/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/hardhat-cannon/node_modules/has-flag": { @@ -10072,10 +10516,11 @@ } }, "node_modules/hardhat-cannon/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -11016,6 +11461,7 @@ "integrity": "sha512-WV/ar+KQJVoQpqRDYdo7YPGYIUHJxCuOEhdvsRpzLqoOIVCqPKdMMYmsLL1nCRsF3yYNio+PAJbCKiv6drrEAg==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "(Apache-2.0 AND MIT)", "dependencies": { "cids": "^1.1.6", "multicodec": "^3.0.1", @@ -11028,6 +11474,7 @@ "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "multibase": "^4.0.1", "multicodec": "^3.0.1", @@ -11045,6 +11492,7 @@ "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "@multiformats/base-x": "^4.0.1" }, @@ -11059,6 +11507,7 @@ "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "uint8arrays": "^3.0.0", "varint": "^6.0.0" @@ -11068,13 +11517,15 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/interface-ipld-format/node_modules/multihashes": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", "dev": true, + "license": "MIT", "dependencies": { "multibase": "^4.0.1", "uint8arrays": "^3.0.0", @@ -11090,6 +11541,7 @@ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } @@ -11157,6 +11609,7 @@ "resolved": "https://registry.npmjs.org/ipfs-only-hash/-/ipfs-only-hash-4.0.0.tgz", "integrity": "sha512-TE1DZCvfw8i3gcsTq3P4TFx3cKFJ3sluu/J3XINkJhIN9OwJgNMqKA+WnKx6ByCb1IoPXsTp1KM7tupElb6SyA==", "dev": true, + "license": "MIT", "dependencies": { "ipfs-unixfs-importer": "^7.0.1", "meow": "^9.0.0" @@ -11170,6 +11623,7 @@ "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-4.0.3.tgz", "integrity": "sha512-hzJ3X4vlKT8FQ3Xc4M1szaFVjsc1ZydN+E4VQ91aXxfpjFn9G2wsMo1EFdAXNq/BUnN5dgqIOMP5zRYr3DTsAw==", "dev": true, + "license": "MIT", "dependencies": { "err-code": "^3.0.1", "protobufjs": "^6.10.2" @@ -11184,6 +11638,7 @@ "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-7.0.3.tgz", "integrity": "sha512-qeFOlD3AQtGzr90sr5Tq1Bi8pT5Nr2tSI8z310m7R4JDYgZc6J1PEZO3XZQ8l1kuGoqlAppBZuOYmPEqaHcVQQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^5.0.0", "cids": "^1.1.5", @@ -11211,6 +11666,7 @@ "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "multibase": "^4.0.1", "multicodec": "^3.0.1", @@ -11227,6 +11683,7 @@ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } @@ -11237,6 +11694,7 @@ "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "@multiformats/base-x": "^4.0.1" }, @@ -11251,6 +11709,7 @@ "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "uint8arrays": "^3.0.0", "varint": "^6.0.0" @@ -11261,6 +11720,7 @@ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } @@ -11269,13 +11729,15 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ipfs-unixfs-importer/node_modules/multihashes": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", "dev": true, + "license": "MIT", "dependencies": { "multibase": "^4.0.1", "uint8arrays": "^3.0.0", @@ -11291,6 +11753,7 @@ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } @@ -11301,6 +11764,7 @@ "integrity": "sha512-dfG5C5OVAR4FEP7Al2CrHWvAyIM7UhAQrjnOYOIxXGQz5NlEj6wGX0XQf6Ru6or1na6upvV3NQfstapQG8X2rg==", "deprecated": "This module has been superseded by @ipld/dag-pb and multiformats", "dev": true, + "license": "MIT", "dependencies": { "cids": "^1.0.0", "interface-ipld-format": "^1.0.0", @@ -11321,6 +11785,7 @@ "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "multibase": "^4.0.1", "multicodec": "^3.0.1", @@ -11337,6 +11802,7 @@ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } @@ -11347,6 +11813,7 @@ "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "@multiformats/base-x": "^4.0.1" }, @@ -11361,6 +11828,7 @@ "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "uint8arrays": "^3.0.0", "varint": "^6.0.0" @@ -11371,6 +11839,7 @@ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } @@ -11379,13 +11848,15 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ipld-dag-pb/node_modules/multihashes": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", "dev": true, + "license": "MIT", "dependencies": { "multibase": "^4.0.1", "uint8arrays": "^3.0.0", @@ -11401,6 +11872,7 @@ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } @@ -11700,6 +12172,7 @@ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11846,16 +12319,17 @@ } }, "node_modules/isows": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.3.tgz", - "integrity": "sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", "dev": true, "funding": [ { "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" + "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "peerDependencies": { "ws": "*" } @@ -11870,29 +12344,49 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/it-batch": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.9.tgz", "integrity": "sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/it-first": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/it-parallel-batch": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.11.tgz", "integrity": "sha512-UWsWHv/kqBpMRmyZJzlmZeoAMA0F3SZr08FBdbhtbe+MtoEBgr/ZUAKrnenhXCBrsopy76QjRH2K/V8kNdupbQ==", "dev": true, + "license": "ISC", "dependencies": { "it-batch": "^1.0.9" } }, + "node_modules/jackspeak": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jest-docblock": { "version": "21.2.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", @@ -12029,13 +12523,6 @@ "node": ">=6" } }, - "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true, - "peer": true - }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -12564,7 +13051,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/loupe": { "version": "2.3.6", @@ -12621,13 +13109,6 @@ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", "dev": true }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true, - "peer": true - }, "node_modules/mafmt": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-7.1.0.tgz", @@ -12648,6 +13129,7 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -12786,6 +13268,7 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -12812,6 +13295,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -12825,6 +13309,7 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -12837,6 +13322,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -12849,6 +13335,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -12861,6 +13348,7 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -12876,6 +13364,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -12891,6 +13380,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -12903,6 +13393,7 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -12912,6 +13403,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -12921,6 +13413,7 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", @@ -12936,6 +13429,7 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", @@ -12953,6 +13447,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } @@ -12961,13 +13456,15 @@ "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -12980,6 +13477,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -12989,6 +13487,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } @@ -12998,6 +13497,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -13009,13 +13509,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/meow/node_modules/yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -13031,6 +13533,7 @@ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^2.1.0" }, @@ -13192,6 +13695,7 @@ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -13228,6 +13732,7 @@ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -13242,6 +13747,7 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13251,6 +13757,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13841,7 +14348,8 @@ "version": "9.9.0", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", - "dev": true + "dev": true, + "license": "(Apache-2.0 AND MIT)" }, "node_modules/multihashes": { "version": "0.4.21", @@ -13870,6 +14378,7 @@ "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.4.tgz", "integrity": "sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==", "dev": true, + "license": "MIT", "dependencies": { "blakejs": "^1.1.0", "err-code": "^3.0.0", @@ -13889,6 +14398,7 @@ "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", "deprecated": "This module has been superseded by the multiformats module", "dev": true, + "license": "MIT", "dependencies": { "@multiformats/base-x": "^4.0.1" }, @@ -13902,6 +14412,7 @@ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", "dev": true, + "license": "MIT", "dependencies": { "multibase": "^4.0.1", "uint8arrays": "^3.0.0", @@ -13917,6 +14428,7 @@ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } @@ -13942,6 +14454,7 @@ "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -14396,6 +14909,95 @@ "node": ">=0.10.0" } }, + "node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/ox/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ox/node_modules/@scure/base": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", + "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ox/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ox/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ox/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -14458,6 +15060,13 @@ "node": ">=4" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -14644,6 +15253,43 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -15157,6 +15803,7 @@ "resolved": "https://registry.npmjs.org/promise-events/-/promise-events-0.2.4.tgz", "integrity": "sha512-GCM6DmJcSCC8XboZIzYJAlADwkIS1P54XFUJQYhB7dpE7rtXPzPrT13dsV4Qm0FMCKptwMTyF8ZCir803RfKzA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -15180,6 +15827,7 @@ "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", "dev": true, "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -15343,6 +15991,7 @@ "resolved": "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz", "integrity": "sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==", "dev": true, + "license": "MIT", "dependencies": { "@assemblyscript/loader": "^0.9.4", "bl": "^5.0.0", @@ -15564,6 +16213,7 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, + "license": "MIT", "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -15577,6 +16227,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, + "license": "MIT", "dependencies": { "min-indent": "^1.0.0" }, @@ -15946,6 +16597,13 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, "node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -16388,6 +17046,16 @@ "node": ">=6" } }, + "node_modules/ses": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/ses/-/ses-1.11.0.tgz", + "integrity": "sha512-FydfDDnciRdVdFHM5u2jU1Qp+ZZyGGXYdEOy83d4CSPSxxEk5bzBd3s2yEsA1Q5TdaDxDN/SaOihx5E1gktIKQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@endo/env-options": "^1.1.8" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -16512,19 +17180,6 @@ "node": ">=4" } }, - "node_modules/shiki": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", - "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -17162,7 +17817,8 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/spawn-command": { "version": "0.0.2-1", @@ -17244,7 +17900,8 @@ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stacktrace-parser": { "version": "0.1.10", @@ -17311,6 +17968,62 @@ "node": ">=4" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.trimend": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", @@ -17350,6 +18063,30 @@ "node": ">=4" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -17812,12 +18549,16 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "node_modules/tildify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", - "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-3.0.0.tgz", + "integrity": "sha512-9ZLMl75qnTLr7oSEmWJbKemFS/fP4TMBiF6PFwGwLpgobebU1ehXoGbadJ+7jT8fjaz2G82JgN9G4taz+o1j1w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/timed-out": { @@ -17920,6 +18661,7 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -18076,79 +18818,6 @@ "is-typedarray": "^1.0.0" } }, - "node_modules/typedoc": { - "version": "0.25.13", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz", - "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==", - "dev": true, - "peer": true, - "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.3", - "shiki": "^0.14.7" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 16" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x" - } - }, - "node_modules/typedoc-plugin-markdown": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.17.1.tgz", - "integrity": "sha512-QzdU3fj0Kzw2XSdoL15ExLASt2WPqD7FbLeaqwT70+XjKyTshBnUlQA5nNREO1C2P8Uen0CDjsBLMsCQ+zd0lw==", - "dev": true, - "dependencies": { - "handlebars": "^4.7.7" - }, - "peerDependencies": { - "typedoc": ">=0.24.0" - } - }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/typedoc/node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "peer": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/typescript": { "version": "5.4.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", @@ -18168,6 +18837,7 @@ "resolved": "https://registry.npmjs.org/typestub-ipfs-only-hash/-/typestub-ipfs-only-hash-4.0.0.tgz", "integrity": "sha512-HKLePX0XiPiyqoueSfvCLL9SIzvKBXjASaRoR0yk/gUbbK7cqejU6/tjhihwmzBCvWbx5aMQ2LYsYIpMK7Ikpg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "ipfs-only-hash": "^4.0.0" } @@ -18190,6 +18860,7 @@ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", "dev": true, + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } @@ -18254,6 +18925,7 @@ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -18451,9 +19123,9 @@ } }, "node_modules/viem": { - "version": "2.9.21", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.9.21.tgz", - "integrity": "sha512-8GtxPjPGpiN5cmr19zSX9mb1LX/eON3MPxxAd3QmyUFn69Rp566zlREOqE7zM35y5yX59fXwnz6O3X7e9+C9zg==", + "version": "2.22.23", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.22.23.tgz", + "integrity": "sha512-MheOu+joowphTCfCgdQ9BGU/z1IeHa6/ZIYNVc6KTwDklj671YS87cGv5kRCSU0vAfzN+5wjWyIffM8000KGkQ==", "dev": true, "funding": [ { @@ -18461,15 +19133,16 @@ "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@scure/bip32": "1.3.2", - "@scure/bip39": "1.2.1", - "abitype": "1.0.0", - "isows": "1.0.3", - "ws": "8.13.0" + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" }, "peerDependencies": { "typescript": ">=5.0.4" @@ -18481,70 +19154,63 @@ } }, "node_modules/viem/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 16" + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/viem/node_modules/@scure/bip32": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz", - "integrity": "sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==", + "node_modules/viem/node_modules/@scure/base": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", + "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", "dev": true, - "dependencies": { - "@noble/curves": "~1.2.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.2" - }, + "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/viem/node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "node_modules/viem/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", "dev": true, + "license": "MIT", "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/viem/node_modules/abitype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.0.tgz", - "integrity": "sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ==", + "node_modules/viem/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/wevm" - }, - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.22.0" + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/viem/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -18561,20 +19227,6 @@ } } }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true, - "peer": true - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true, - "peer": true - }, "node_modules/wait-port": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-0.2.9.tgz", @@ -19931,6 +20583,116 @@ "node": ">=6" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -20307,6 +21069,7 @@ "resolved": "https://registry.npmjs.org/znv/-/znv-0.4.0.tgz", "integrity": "sha512-6/pGsQhBisLzKdyC90mUCRgYDtCfQ4aQ68sDybexq3GMzqqkp662GH6qIyuCHJC1i72hJPHbWAhccTJVuZUQfA==", "dev": true, + "license": "MIT", "dependencies": { "colorette": "^2.0.19" }, @@ -20315,10 +21078,11 @@ } }, "node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -20326,9 +21090,9 @@ }, "dependencies": { "@adraffy/ens-normalize": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz", - "integrity": "sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", "dev": true }, "@assemblyscript/loader": { @@ -20611,6 +21375,12 @@ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, + "@endo/env-options": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@endo/env-options/-/env-options-1.1.8.tgz", + "integrity": "sha512-Xtxw9n33I4guo8q0sDyZiRuxlfaopM454AKiELgU7l3tqsylCut6IBZ0fPy4ltSHsBib7M3yF7OEMoIuLwzWVg==", + "dev": true + }, "@ensdomains/address-encoder": { "version": "0.1.9", "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", @@ -21397,6 +22167,65 @@ "integrity": "sha512-td6ZUkz2oS3VeleBcN+m//Q6HlCFCPrnI0FZhrt/h4XqLEdOyYp2u21nd8MdsR+WJy5r9PTDaHTDDfhf4H4l6Q==", "dev": true }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@jridgewell/gen-mapping": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", @@ -21489,18 +22318,18 @@ "dev": true }, "@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", "dev": true, "requires": { - "@noble/hashes": "1.3.2" + "@noble/hashes": "1.7.1" }, "dependencies": { "@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "dev": true } } @@ -23309,41 +24138,51 @@ "dev": true }, "@usecannon/builder": { - "version": "2.12.4", - "resolved": "https://registry.npmjs.org/@usecannon/builder/-/builder-2.12.4.tgz", - "integrity": "sha512-r4Sr0unFvaPZL6d33Ra5g/L5znp0QRqs+pHwqF8MdRZzpTQOd4QlL5yTHfERjjnpXeJ5aZN+/jmwnAYgCOIv5g==", + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@usecannon/builder/-/builder-2.21.1.tgz", + "integrity": "sha512-H2RoSvBTEC7QOcvaRQ/6Ua6UAvyL9VxUaai6azMACXT53iLLD2by89ZfdXF5NWQHCFLHXzYGJ2fM1PYd1ZYadg==", "dev": true, "requires": { - "@synthetixio/router": "^3.3.7", - "axios": "^1.6.7", - "axios-retry": "^4.0.0", + "@usecannon/router": "^4.1.2", + "@usecannon/web-solc": "0.5.1", + "acorn": "^8.14.0", + "axios": "^1.7.2", + "axios-retry": "^4.4.2", "buffer": "^6.0.3", - "debug": "^4.3.4", + "chalk": "^4.1.2", + "debug": "^4.3.6", + "deep-freeze": "^0.0.1", "form-data": "^4.0.0", + "fuse.js": "^7.0.0", "lodash": "^4.17.21", "pako": "^2.1.0", "promise-events": "^0.2.4", - "typedoc-plugin-markdown": "^3.17.1", + "rfdc": "^1.4.1", + "ses": "^1.10.0", "typestub-ipfs-only-hash": "^4.0.0", - "viem": "^2.9.3", - "zod": "^3.22.4" + "viem": "^2.21.15", + "zod": "^3.23.6" }, "dependencies": { - "@synthetixio/router": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@synthetixio/router/-/router-3.3.7.tgz", - "integrity": "sha512-4/LedFeeM1QkdbErftZyoJ+9A1K+EUQZplwA4LVy5aBomHGPKFLKHxW0bCxzjAp9eeq0CN28rd6dxv4bSmgGBQ==", + "acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@ethersproject/keccak256": "^5.7.0", - "debug": "^4.3.4", - "mustache": "^4.2.0" + "color-convert": "^2.0.1" } }, "axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "dev": true, "requires": { "follow-redirects": "^1.15.6", @@ -23361,10 +24200,44 @@ "ieee754": "^1.2.1" } }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, "requires": { "asynckit": "^0.4.0", @@ -23372,74 +24245,65 @@ "mime-types": "^2.1.12" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", "dev": true }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "peer": true - }, - "solc": { - "version": "0.8.25", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.25.tgz", - "integrity": "sha512-7P0TF8gPeudl1Ko3RGkyY6XVCxe2SdD/qQhtns1vl3yAbK/PDifKDLHGtx1t7mX3LgR7ojV7Fg/Kc6Q9D2T8UQ==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "peer": true, "requires": { - "command-exists": "^1.2.8", - "commander": "^8.1.0", - "follow-redirects": "^1.12.1", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "semver": "^5.5.0", - "tmp": "0.0.33" + "has-flag": "^4.0.0" } } } }, "@usecannon/cli": { - "version": "2.12.4", - "resolved": "https://registry.npmjs.org/@usecannon/cli/-/cli-2.12.4.tgz", - "integrity": "sha512-BOTU0UCV1vJaEcGcq2GLEb7ica+xecdPyjXNClnR+HPq6dcIjd56juev64rSbzkGoDWEM9ENsWKXHa3X8NRDag==", + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@usecannon/cli/-/cli-2.21.1.tgz", + "integrity": "sha512-fV51zUHO5BM+ruLwbPMIgrwfwT5Tbqi3eW8gj0Vsw7lcvQ2MxinNZTFamqZgpeP77xWC1u/cGkolV0v8hk0ckg==", "dev": true, "requires": { "@iarna/toml": "^3.0.0", - "@synthetixio/wei": "^2.74.1", - "@usecannon/builder": "2.12.4", - "abitype": "^1.0.0", + "@usecannon/builder": "2.21.1", + "abitype": "^1.0.5", "chalk": "^4.1.2", - "commander": "^9.5.0", - "debug": "^4.3.4", + "commander": "^12.1.0", + "debug": "^4.3.6", "eth-provider": "^0.13.6", - "fastq": "^1.15.0", - "fs-extra": "^10.1.0", + "fs-extra": "^11.2.0", + "glob": "^11.0.0", "lodash": "^4.17.21", "prompts": "^2.4.2", - "semver": "^7.3.7", - "table": "^6.8.0", - "tildify": "2.0.0", + "semver": "^7.6.3", + "table": "^6.8.2", + "tildify": "3.0.0", "untildify": "^4.0.0", - "viem": "^2.9.3", + "viem": "^2.21.15", "znv": "^0.4.0", - "zod": "^3.22.4" + "zod": "^3.23.8" }, "dependencies": { "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" } }, "ansi-regex": { @@ -23463,6 +24327,15 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -23489,11 +24362,20 @@ "dev": true }, "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true }, + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -23501,9 +24383,9 @@ "dev": true }, "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -23511,6 +24393,20 @@ "universalify": "^2.0.0" } }, + "glob": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -23529,6 +24425,27 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, + "minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true + }, + "semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true + }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -23570,9 +24487,9 @@ } }, "table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -23590,6 +24507,35 @@ } } }, + "@usecannon/router": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@usecannon/router/-/router-4.1.3.tgz", + "integrity": "sha512-s6YfUovQoh1bW10LWHhrRQHUd+IK1L69daqBa+kGxMGpGwmx12LqjUdT+inB2YjtbYy7FLaLd+DV6tegIi2wXQ==", + "dev": true, + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "debug": "^4.3.7", + "mustache": "^4.2.0" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + } + } + }, + "@usecannon/web-solc": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@usecannon/web-solc/-/web-solc-0.5.1.tgz", + "integrity": "sha512-wK8J1snp1ikYzpxA8LzhQwp+6cvmLDnFG2EaMLmqtQZD/FIz7xh8IaSgHUliwDBm9zdsPEIvXvhDvanyZ7IBuw==", + "dev": true + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -23764,9 +24710,9 @@ } }, "abitype": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.2.tgz", - "integrity": "sha512-aFt4k2H+eiAKy/zxtnORa9iIb10BMBeWL18l8v4+QuwYEBXPxxjSB1bFZCzQmKPoj8m7j68K705l3uY+E2gAjg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", "dev": true, "requires": {} }, @@ -23936,13 +24882,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" }, - "ansi-sequence-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", - "dev": true, - "peer": true - }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -24183,9 +25122,9 @@ } }, "axios-retry": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-4.1.0.tgz", - "integrity": "sha512-svdth4H00yhlsjBbjfLQ/sMLkXqeLxhiFC1nE1JtkN/CIssGxqk0UwTEdrVjwA2gr3yJkAulwvDSIm4z4HyPvg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-4.5.0.tgz", + "integrity": "sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ==", "dev": true, "requires": { "is-retry-allowed": "^2.2.0" @@ -25573,6 +26512,12 @@ "type-detect": "^4.0.0" } }, + "deep-freeze": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", + "integrity": "sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==", + "dev": true + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -25774,6 +26719,12 @@ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", "dev": true }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -26854,9 +27805,9 @@ } }, "eth-provider": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/eth-provider/-/eth-provider-0.13.6.tgz", - "integrity": "sha512-/i0qSQby/rt3CCZrNVlgBdCUYQBwULStFRlBt7+ULNVpwbsYWl9VWXFaQxsbJLOo0x7swRS3OknIdlxlunsGJw==", + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/eth-provider/-/eth-provider-0.13.7.tgz", + "integrity": "sha512-D07HcKBQ0+liERDbkwpex03Y5D7agOMBv8NMkGu0obmD+vHzP9q8jI/tkZMfYAhbfXwpudEgXKiJODXH5UQu7g==", "dev": true, "requires": { "ethereum-provider": "0.7.7", @@ -27677,6 +28628,12 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true + }, "fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -27808,6 +28765,24 @@ "is-callable": "^1.1.3" } }, + "foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + } + } + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -27914,6 +28889,12 @@ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, + "fuse.js": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", + "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -28374,18 +29355,18 @@ } }, "hardhat-cannon": { - "version": "2.12.4", - "resolved": "https://registry.npmjs.org/hardhat-cannon/-/hardhat-cannon-2.12.4.tgz", - "integrity": "sha512-VW7nN6KM+07r/uxfpSX5Wdk+ngejLDXZo6fe2D+DuyACGy8vo/y2LdN4GEzHU4MAL6AIKMyRHC/01+VIomtq3w==", + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/hardhat-cannon/-/hardhat-cannon-2.21.1.tgz", + "integrity": "sha512-MXGDFpu9WBelCEiY2y7p28HjdzwjYsB/yrsGlZFCD55Imk0cbmZE2swKrs1PSP8IA8PVEv5aM+gd7cszHA1hnA==", "dev": true, "requires": { "@iarna/toml": "^3.0.0", - "@usecannon/builder": "2.12.4", - "@usecannon/cli": "2.12.4", + "@usecannon/builder": "2.21.1", + "@usecannon/cli": "2.21.1", "chalk": "^4.1.2", - "debug": "^4.3.3", - "fs-extra": "^10.0.1", - "viem": "^2.9.3" + "debug": "^4.3.6", + "fs-extra": "^11.2.0", + "viem": "^2.21.15" }, "dependencies": { "ansi-styles": { @@ -28422,10 +29403,19 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -28449,9 +29439,9 @@ } }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true } } @@ -29668,9 +30658,9 @@ "dev": true }, "isows": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.3.tgz", - "integrity": "sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", "dev": true, "requires": {} }, @@ -29707,6 +30697,15 @@ "it-batch": "^1.0.9" } }, + "jackspeak": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2" + } + }, "jest-docblock": { "version": "21.2.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", @@ -29821,13 +30820,6 @@ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, - "jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true, - "peer": true - }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -30302,13 +31294,6 @@ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", "dev": true }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true, - "peer": true - }, "mafmt": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-7.1.0.tgz", @@ -31681,6 +32666,62 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, + "ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "dev": true, + "requires": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "dev": true + }, + "@scure/base": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", + "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", + "dev": true + }, + "@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "dev": true, + "requires": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + } + }, + "@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "dev": true, + "requires": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + } + }, + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + } + } + }, "p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -31722,6 +32763,12 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -31873,6 +32920,30 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "requires": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "dependencies": { + "lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "dev": true + }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true + } + } + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -32839,6 +33910,12 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, + "rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true + }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -33173,6 +34250,15 @@ "xhr": "^2.3.3" } }, + "ses": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/ses/-/ses-1.11.0.tgz", + "integrity": "sha512-FydfDDnciRdVdFHM5u2jU1Qp+ZZyGGXYdEOy83d4CSPSxxEk5bzBd3s2yEsA1Q5TdaDxDN/SaOihx5E1gktIKQ==", + "dev": true, + "requires": { + "@endo/env-options": "^1.1.8" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -33264,19 +34350,6 @@ "rechoir": "^0.6.2" } }, - "shiki": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", - "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", - "dev": true, - "peer": true, - "requires": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -33921,6 +34994,46 @@ "strip-ansi": "^4.0.0" } }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "string.prototype.trimend": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", @@ -33951,6 +35064,23 @@ "ansi-regex": "^3.0.0" } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } + } + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -34304,9 +35434,9 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "tildify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", - "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-3.0.0.tgz", + "integrity": "sha512-9ZLMl75qnTLr7oSEmWJbKemFS/fP4TMBiF6PFwGwLpgobebU1ehXoGbadJ+7jT8fjaz2G82JgN9G4taz+o1j1w==", "dev": true }, "timed-out": { @@ -34512,57 +35642,6 @@ "is-typedarray": "^1.0.0" } }, - "typedoc": { - "version": "0.25.13", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz", - "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==", - "dev": true, - "peer": true, - "requires": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.3", - "shiki": "^0.14.7" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "peer": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "peer": true - }, - "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "peer": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "typedoc-plugin-markdown": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.17.1.tgz", - "integrity": "sha512-QzdU3fj0Kzw2XSdoL15ExLASt2WPqD7FbLeaqwT70+XjKyTshBnUlQA5nNREO1C2P8Uen0CDjsBLMsCQ+zd0lw==", - "dev": true, - "requires": { - "handlebars": "^4.7.7" - } - }, "typescript": { "version": "5.4.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", @@ -34799,78 +35878,63 @@ } }, "viem": { - "version": "2.9.21", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.9.21.tgz", - "integrity": "sha512-8GtxPjPGpiN5cmr19zSX9mb1LX/eON3MPxxAd3QmyUFn69Rp566zlREOqE7zM35y5yX59fXwnz6O3X7e9+C9zg==", + "version": "2.22.23", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.22.23.tgz", + "integrity": "sha512-MheOu+joowphTCfCgdQ9BGU/z1IeHa6/ZIYNVc6KTwDklj671YS87cGv5kRCSU0vAfzN+5wjWyIffM8000KGkQ==", "dev": true, "requires": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@scure/bip32": "1.3.2", - "@scure/bip39": "1.2.1", - "abitype": "1.0.0", - "isows": "1.0.3", - "ws": "8.13.0" + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" }, "dependencies": { "@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "dev": true + }, + "@scure/base": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", + "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", "dev": true }, "@scure/bip32": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz", - "integrity": "sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", "dev": true, "requires": { - "@noble/curves": "~1.2.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.2" + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" } }, "@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", "dev": true, "requires": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" } }, - "abitype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.0.tgz", - "integrity": "sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ==", - "dev": true, - "requires": {} - }, "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "requires": {} } } }, - "vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true, - "peer": true - }, - "vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true, - "peer": true - }, "wait-port": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-0.2.9.tgz", @@ -36007,6 +37071,81 @@ } } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -36270,9 +37409,9 @@ } }, "zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", "dev": true } } diff --git a/package.json b/package.json index 5178b0add..442ab93d0 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "execa": "^4.1.0", "fs-extra": "^9.0.1", "hardhat": "^2.12.7", - "hardhat-cannon": "^2.12.4", + "hardhat-cannon": "^2.21.0", "hardhat-gas-reporter": "^1.0.9", "hardhat-interact": "^0.2.3", "husky": "^4.3.0", diff --git a/publish/deployed/mainnet-ovm/deployment.json b/publish/deployed/mainnet-ovm/deployment.json index df7e0391f..25196103a 100644 --- a/publish/deployed/mainnet-ovm/deployment.json +++ b/publish/deployed/mainnet-ovm/deployment.json @@ -251,7 +251,7 @@ "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4", "0xB9c6CA25452E7f6D0D3340CE1e9B573421afc2eE", "0x6d4a64C57612841c2C6745dB2a4E4db34F002D20", - "102057832127604526258614866", + "106594734597396177844041693", "0x1Cb059b7e74fD21665968C908806143E744D5F30" ] }, @@ -306,11 +306,11 @@ }, "Issuer": { "name": "Issuer", - "address": "0xb4E0FA941376e101C29A9FA5A9C6a95489aA34cD", + "address": "0x49acf95f875984fF57E1bB8b9bA49c5487C133A7", "source": "Issuer", - "link": "https://explorer.optimism.io/address/0xb4E0FA941376e101C29A9FA5A9C6a95489aA34cD", - "timestamp": "2024-04-16T21:20:59.000Z", - "txn": "https://explorer.optimism.io/tx/0x1b1458fedca37f24b2209e4cf1a277c44fb8f40575f38377093526d16e8c1905", + "link": "https://explorer.optimism.io/address/0x49acf95f875984fF57E1bB8b9bA49c5487C133A7", + "timestamp": "2025-03-19T19:20:55.000Z", + "txn": "https://explorer.optimism.io/tx/0x652bb13995a35b52af003b1eeae68e45f9249104a870b46947e1d3c4beddf2dc", "network": "mainnet", "constructorArgs": [ "0x6d4a64C57612841c2C6745dB2a4E4db34F002D20", @@ -37348,7 +37348,7 @@ } }, "Issuer": { - "bytecode": "60806040523480156200001157600080fd5b50604051620060d7380380620060d78339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b615eb480620002236000396000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c806372c6581611610182578063a311c7c2116100e9578063c81ff8fa116100a2578063d686c06c1161007c578063d686c06c1461061d578063dbf6334014610630578063dd3d2b2e14610638578063fd864ccf1461064b576102bb565b8063c81ff8fa146105e4578063c8977132146105f7578063d37c4d8b1461060a576102bb565b8063a311c7c21461057d578063a5fdc5de14610590578063ae3bbbbb146105a3578063b06e8c65146105b6578063b410a034146105c9578063bff4fdfc146105d1576102bb565b8063835e119c1161013b578063835e119c14610521578063849cf58814610534578063890235d414610547578063899ffef41461055a5780638da5cb5b146105625780639a5154b41461056a576102bb565b806372c65816146104c357806372cb051f146104d657806374185360146104eb57806379ba5097146104f35780637b1001b7146104fb57806380aa6a911461050e576102bb565b806331e6da5a116102265780634e99bda9116101df5780634e99bda91461044757806353a47bb71461044f5780635e887fe914610464578063614d08f8146104875780636bed04151461048f5780637168d2c2146104b0576102bb565b806331e6da5a146103c857806332608039146103db5780633b6afe40146103ee57806344ec6b621461040e57806347a9b6db14610421578063497d704a14610434576102bb565b80631313e6ca116102785780631313e6ca1461035b5780631627540c1461037257806316b2213f14610385578063242df9e1146103985780632af64bd3146103a05780632b3f41aa146103b5576102bb565b8063042e0688146102c057806304f3bcec146102d557806305b3c1c9146102f35780630b887dae146103135780630d969cf5146103265780631137aedf14610339575b600080fd5b6102d36102ce366004614d6c565b61065e565b005b6102dd6106cf565b6040516102ea9190615aeb565b60405180910390f35b610306610301366004614c79565b6106de565b6040516102ea9190615a37565b6102d3610321366004614ea4565b6106f2565b6102d3610334366004614d9c565b6107d0565b61034c610347366004614c79565b610963565b6040516102ea93929190615a61565b61036361097f565b6040516102ea93929190615cd4565b6102d3610380366004614c79565b610a26565b610306610393366004614c79565b610a84565b610306610a96565b6103a8610aa6565b6040516102ea9190615a29565b6102d36103c3366004614cb5565b610bbd565b6102d36103d6366004614f5c565b610c0c565b6102dd6103e9366004614ea4565b610d47565b6104016103fc366004614dfd565b610d62565b6040516102ea9190615a18565b6102d361041c366004614cef565b610e10565b6102d361042f366004614dfd565b610e63565b6102d3610442366004614c79565b610f14565b6103a8610f5c565b610457610fee565b6040516102ea9190615944565b610477610472366004614d3c565b610ffd565b6040516102ea9493929190615cfc565b61030661101f565b6104a261049d366004614d6c565b61102c565b6040516102ea929190615cc6565b6102d36104be366004614dfd565b611098565b61034c6104d1366004614d3c565b6111cd565b6104de61133f565b6040516102ea9190615a07565b6102d361134b565b6102d361149d565b610306610509366004614f01565b611539565b6102d361051c366004614d6c565b611545565b6102dd61052f366004614ea4565b611930565b6102d3610542366004614f20565b611957565b6103a8610555366004614ee0565b6119ca565b6104de611d50565b610457612026565b6102d3610578366004614cef565b612035565b61030661058b366004614c79565b612083565b61030661059e366004614c79565b612095565b6104a26105b1366004614c79565b6120a0565b6102d36105c4366004614d6c565b6120b6565b6103066120fa565b6103a86105df366004614c79565b612104565b6103a86105f2366004614ee0565b61210f565b6102d3610605366004614c79565b6124d5565b610306610618366004614d6c565b61251a565b6102d361062b366004614cef565b61254c565b6103066125f2565b610306610646366004614c79565b6125f8565b6102d3610659366004614cb5565b612603565b610666612652565b6001600160a01b0316336001600160a01b03161461069f5760405162461bcd60e51b815260040161069690615b98565b60405180910390fd5b600081116106bf5760405162461bcd60e51b815260040161069690615c58565b6106cb82826000612669565b5050565b6002546001600160a01b031681565b6000806106ea83612793565b509392505050565b6106fa6127e6565b6000610704612812565b604051636b42ba1d60e11b81529091506001600160a01b0382169063d685743a90610736908590600090600401615a89565b600060405180830381600087803b15801561075057600080fd5b505af1158015610764573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03841692506304bd11e5915061079590600190600401615a29565b600060405180830381600087803b1580156107af57600080fd5b505af11580156107c3573d6000803e3d6000fd5b505050506106cb82612829565b6107d8612cd7565b6107e0612dc1565b6001600160a01b0316631b16802c85856040518363ffffffff1660e01b815260040161080d929190615988565b606060405180830381600087803b15801561082757600080fd5b505af115801561083b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061085f919081019061504f565b50505060008381526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906108a19087908690600401615988565b600060405180830381600087803b1580156108bb57600080fd5b505af11580156108cf573d6000803e3d6000fd5b505050506108dc84612dd8565b631cd554d160e21b6000526005602052600080516020615e528339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b49061092b9087908590600401615988565b600060405180830381600087803b15801561094557600080fd5b505af1158015610959573d6000803e3d6000fd5b5050505050505050565b600080600061097184612e51565b509196909550909350915050565b60008060008060006109b86109b37f6578743a41676772656761746f7249737375656453796e746873000000000000612ec1565b612f1e565b509350509250506000806109ca612fa9565b91509150839650816000146109ee576109e9878363ffffffff612fe416565b6109f1565b60005b955060006109fd613004565b90504281108015610a1a5750838142031180610a1a575081814203115b95505050505050909192565b610a2e6127e6565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610a79908390615944565b60405180910390a150565b60066020526000908152604090205481565b6000610aa06130ae565b90505b90565b60006060610ab2611d50565b905060005b8151811015610bb4576000828281518110610ace57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610b1f908590600401615a37565b60206040518083038186803b158015610b3757600080fd5b505afa158015610b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b6f9190810190614c97565b6001600160a01b0316141580610b9a57506000818152600360205260409020546001600160a01b0316155b15610bab5760009350505050610aa3565b50600101610ab7565b50600191505090565b610bc5612652565b6001600160a01b0316336001600160a01b031614610bf55760405162461bcd60e51b815260040161069690615b98565b610bff8282613109565b6106cb82600060016131aa565b610c1f66119959541bdbdb60ca1b612ec1565b6001600160a01b0316336001600160a01b031614610c4f5760405162461bcd60e51b815260040161069690615bb8565b6000610c5961341c565b9050816001600160801b0316816001600160a01b031663988e65956040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9e57600080fd5b505afa158015610cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cd69190810190614f7a565b6001600160801b031610156106cb5760405163abb6de9560e01b81526001600160a01b0382169063abb6de9590610d11908590600401615cb8565b600060405180830381600087803b158015610d2b57600080fd5b505af1158015610d3f573d6000803e3d6000fd5b505050505050565b6005602052600090815260409020546001600160a01b031681565b60408051828152602080840282010190915260609082908290828015610d92578160200160208202803883390190505b50905060005b82811015610e055760056000878784818110610db057fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b0316828281518110610de557fe5b6001600160a01b0390921660209283029190910190910152600101610d98565b509150505b92915050565b610e18612652565b6001600160a01b0316336001600160a01b031614610e485760405162461bcd60e51b815260040161069690615b98565b610e52838361343c565b610e5e83826000612669565b505050565b610e6b6127e6565b8060005b81811015610ea857610ea0848483818110610e8657fe5b9050602002016020610e9b9190810190614f20565b613471565b600101610e6f565b50610eb1612812565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b8152600401610edd9190615a29565b600060405180830381600087803b158015610ef757600080fd5b505af1158015610f0b573d6000803e3d6000fd5b50505050505050565b610f1c612652565b6001600160a01b0316336001600160a01b031614610f4c5760405162461bcd60e51b815260040161069690615b98565b610f5981600060016131aa565b50565b6000610f66613602565b6001600160a01b031663c8e5bbd5610f7e600161361d565b6040518263ffffffff1660e01b8152600401610f9a9190615a07565b60006040518083038186803b158015610fb257600080fd5b505afa158015610fc6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0a9190810190614e3f565b6001546001600160a01b031681565b60008060008061100d86866136f9565b93509350935093505b92959194509250565b6524b9b9bab2b960d11b81565b600080600061104961103d86613aa7565b620a69cb60eb1b613b2c565b93509091506000905061106a61105d613b9d565b839063ffffffff613bf516565b905084811061107c576000935061108f565b61108c858263ffffffff613c0a16565b93505b50509250929050565b6110a06127e6565b8060006110ab612812565b90506060826040519080825280602002602001820160405280156110d9578160200160208202803883390190505b506040516305ece36d60e21b81529091506001600160a01b038316906317b38db49061110d908890889086906004016159e1565b600060405180830381600087803b15801561112757600080fd5b505af115801561113b573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03851692506304bd11e5915061116c90600190600401615a29565b600060405180830381600087803b15801561118657600080fd5b505af115801561119a573d6000803e3d6000fd5b506000925050505b83811015610d3f576111c58686838181106111b957fe5b90506020020135612829565b6001016111a2565b60008060006111da612652565b6001600160a01b0316336001600160a01b03161461120a5760405162461bcd60e51b815260040161069690615b98565b611212613c32565b6001600160a01b031663952225f386866040518363ffffffff1660e01b815260040161123f92919061596d565b60206040518083038186803b15801561125757600080fd5b505afa15801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061128f9190810190614e86565b6112ab5760405162461bcd60e51b815260040161069690615bf8565b60006112b786866136f9565b929650909450925090506112cc868483613c4a565b84611337576112d9613c32565b6001600160a01b031663974e9e7f876040518263ffffffff1660e01b81526004016113049190615944565b600060405180830381600087803b15801561131e57600080fd5b505af1158015611332573d6000803e3d6000fd5b505050505b509250925092565b6060610aa0600061361d565b6060611355611d50565b905060005b81518110156106cb57600082828151811061137157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016113b39190615939565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016113df929190615aa4565b60206040518083038186803b1580156113f757600080fd5b505afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061142f9190810190614c97565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061148b9084908490615a45565b60405180910390a1505060010161135a565b6001546001600160a01b031633146114c75760405162461bcd60e51b815260040161069690615b28565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261150a926001600160a01b0391821692911690615952565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006106ea8383613d81565b6002546040516321f8a72160e01b81526000916001600160a01b0316906321f8a7219061158f9075446562744d69677261746f724f6e457468657265756d60501b90600401615a37565b60206040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115df9190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061162e9075446562744d69677261746f724f6e4f7074696d69736d60501b90600401615a37565b60206040518083038186803b15801561164657600080fd5b505afa15801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061167e9190810190614c97565b9050336001600160a01b038316148061169f5750336001600160a01b038216145b6116bb5760405162461bcd60e51b815260040161069690615c68565b6001600160a01b03821615806116d857506001600160a01b038116155b6116f45760405162461bcd60e51b815260040161069690615b18565b60006116fe61341c565b6002546040516321f8a72160e01b81529192506001600160a01b0316906321f8a721906117489075446562744d69677261746f724f6e457468657265756d60501b90600401615a37565b60206040518083038186803b15801561176057600080fd5b505afa158015611774573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117989190810190614c97565b6001600160a01b0316336001600160a01b0316141561181657604051631a378f0d60e01b81526001600160a01b03821690631a378f0d906117df9088908890600401615988565b600060405180830381600087803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50505050611929565b6002546040516321f8a72160e01b81526001600160a01b03909116906321f8a7219061185f9075446562744d69677261746f724f6e4f7074696d69736d60501b90600401615a37565b60206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118af9190810190614c97565b6001600160a01b0316336001600160a01b0316141561192957604051636178258560e11b81526001600160a01b0382169063c2f04b0a906118f69088908890600401615988565b600060405180830381600087803b15801561191057600080fd5b505af1158015611924573d6000803e3d6000fd5b505050505b5050505050565b6004818154811061193d57fe5b6000918252602090912001546001600160a01b0316905081565b61195f6127e6565b61196881613471565b611970612812565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b815260040161199c9190615a29565b600060405180830381600087803b1580156119b657600080fd5b505af1158015611929573d6000803e3d6000fd5b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190611a1b907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615a37565b60206040518083038186803b158015611a3357600080fd5b505afa158015611a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a6b9190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611ab9907453796e746865746978427269646765546f4261736560581b90600401615a37565b60206040518083038186803b158015611ad157600080fd5b505afa158015611ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b099190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611b499066119959541bdbdb60ca1b90600401615a37565b60206040518083038186803b158015611b6157600080fd5b505afa158015611b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b999190810190614c97565b9050336001600160a01b0384161480611bba5750336001600160a01b038316145b80611bcd5750336001600160a01b038216145b611be95760405162461bcd60e51b815260040161069690615b38565b6000878152600560205260409020546001600160a01b0316611c1d5760405162461bcd60e51b815260040161069690615bd8565b60008511611c3d5760405162461bcd60e51b815260040161069690615c58565b611c4686612dd8565b6000878152600560205260409081902054905163219e412d60e21b81526001600160a01b039091169063867904b490611c859089908990600401615988565b600060405180830381600087803b158015611c9f57600080fd5b505af1158015611cb3573d6000803e3d6000fd5b50505050600080611cc389613f0c565b91509150611ccf612812565b6001600160a01b03166342c7b819611cf5611cf08a8663ffffffff613f9116565b613fbb565b6040518263ffffffff1660e01b8152600401611d119190615a37565b600060405180830381600087803b158015611d2b57600080fd5b505af1158015611d3f573d6000803e3d6000fd5b50929b9a5050505050505050505050565b606080611d5b613fe4565b60408051600f808252610200820190925291925060609190602082016101e080388339019050509050680a6f2dce8d0cae8d2f60bb1b81600081518110611d9e57fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110611dc457fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110611dee57fe5b6020026020010181815250506d21b4b931bab4ba213932b0b5b2b960911b81600381518110611e1957fe5b6020026020010181815250507153796e74686574697844656274536861726560701b81600481518110611e4857fe5b60200260200101818152505066119959541bdbdb60ca1b81600581518110611e6c57fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b81600681518110611e9a57fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b81600781518110611ec557fe5b602002602001018181525050692634b8bab4b230ba37b960b11b81600881518110611eec57fe5b602002602001018181525050704c697175696461746f725265776172647360781b81600981518110611f1a57fe5b6020026020010181815250506844656274436163686560b81b81600a81518110611f4057fe5b6020026020010181815250506c29bcb73a342932b232b2b6b2b960991b81600b81518110611f6a57fe5b60200260200101818152505073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b81600c81518110611f9b57fe5b6020026020010181815250507f6578743a41676772656761746f7249737375656453796e74687300000000000081600d81518110611fd557fe5b602002602001018181525050766578743a41676772656761746f7244656274526174696f60481b81600e8151811061200957fe5b60200260200101818152505061201f8282614035565b9250505090565b6000546001600160a01b031681565b61203d612652565b6001600160a01b0316336001600160a01b03161461206d5760405162461bcd60e51b815260040161069690615b98565b6120778383613109565b610e5e838260006131aa565b600061208e826140ea565b5092915050565b6000610e0a82614140565b6000806120ac836140ea565b915091505b915091565b6120be612652565b6001600160a01b0316336001600160a01b0316146120ee5760405162461bcd60e51b815260040161069690615b98565b6106cb828260006131aa565b6000610aa0613b9d565b6000610e0a826141dc565b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190612160907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615a37565b60206040518083038186803b15801561217857600080fd5b505afa15801561218c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121b09190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a721906121fe907453796e746865746978427269646765546f4261736560581b90600401615a37565b60206040518083038186803b15801561221657600080fd5b505afa15801561222a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061224e9190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061228e9066119959541bdbdb60ca1b90600401615a37565b60206040518083038186803b1580156122a657600080fd5b505afa1580156122ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122de9190810190614c97565b9050336001600160a01b03841614806122ff5750336001600160a01b038316145b806123125750336001600160a01b038216145b61232e5760405162461bcd60e51b815260040161069690615b38565b6000878152600560205260409020546001600160a01b03166123625760405162461bcd60e51b815260040161069690615bd8565b600085116123825760405162461bcd60e51b815260040161069690615c58565b61238a612dc1565b6001600160a01b0316631b16802c87896040518363ffffffff1660e01b81526004016123b7929190615988565b606060405180830381600087803b1580156123d157600080fd5b505af11580156123e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612409919081019061504f565b50505060008781526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061244b9089908990600401615988565b600060405180830381600087803b15801561246557600080fd5b505af1158015612479573d6000803e3d6000fd5b5050505060008061248989613f0c565b91509150612495612812565b6001600160a01b03166342c7b8196124b6611cf08a8663ffffffff613f9116565b6000036040518263ffffffff1660e01b8152600401611d119190615a37565b6124dd612652565b6001600160a01b0316336001600160a01b03161461250d5760405162461bcd60e51b815260040161069690615b98565b610f598160006001612669565b60008061252684613aa7565b905080612537576000915050610e0a565b6125418184613b2c565b509095945050505050565b612554612cd7565b826001600160a01b031663d4b839926040518163ffffffff1660e01b815260040160206040518083038186803b15801561258d57600080fd5b505afa1580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125c59190810190614c97565b6001600160a01b0316639dc29fac83836040518363ffffffff1660e01b8152600401610edd929190615988565b60045490565b6000610e0a826141fb565b61260b612652565b6001600160a01b0316336001600160a01b03161461263b5760405162461bcd60e51b815260040161069690615b98565b612645828261343c565b6106cb8260006001612669565b6000610aa0680a6f2dce8d0cae8d2f60bb1b612ec1565b612671614274565b1561267b57610e5e565b60008061268785612e51565b9350505091506126968161443d565b826126c057818411156126bb5760405162461bcd60e51b815260040161069690615b78565b6126c4565b8193505b6126ce858561445b565b6126d785612dd8565b631cd554d160e21b6000526005602052600080516020615e528339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b4906127269088908890600401615988565b600060405180830381600087803b15801561274057600080fd5b505af1158015612754573d6000803e3d6000fd5b50505050612760612812565b6001600160a01b03166342c7b81961277786613fbb565b6040518263ffffffff1660e01b81526004016118f69190615a37565b6000806000806127a8620a69cb60eb1b613f0c565b9150915060006127c06127ba87614140565b84614577565b90506127da6127cd613b9d565b829063ffffffff613f9116565b94509092505050915091565b6000546001600160a01b031633146128105760405162461bcd60e51b815260040161069690615c08565b565b6000610aa06844656274436163686560b81b612ec1565b6000818152600560205260409020546001600160a01b03168061285e5760405162461bcd60e51b815260040161069690615be8565b631cd554d160e21b8214156128855760405162461bcd60e51b815260040161069690615c38565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128c057600080fd5b505afa1580156128d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128f89190810190614ec2565b90508015612b7a5760008061290b613602565b6001600160a01b0316638295016a86856040518363ffffffff1660e01b8152600401612938929190615ac4565b60606040518083038186803b15801561295057600080fd5b505afa158015612964573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612988919081019061504f565b5091509150600081116129ad5760405162461bcd60e51b815260040161069690615ca8565b60006129b7614589565b631cd554d160e21b6000526005602052600080516020615e528339815191525460405163219e412d60e21b81529192506001600160a01b03169063867904b490612a079084908790600401615988565b600060405180830381600087803b158015612a2157600080fd5b505af1158015612a35573d6000803e3d6000fd5b50505050612a41612812565b6001600160a01b03166342c7b819612a5885613fbb565b6040518263ffffffff1660e01b8152600401612a749190615a37565b600060405180830381600087803b158015612a8e57600080fd5b505af1158015612aa2573d6000803e3d6000fd5b50505050806001600160a01b0316633a70599c866001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b158015612aee57600080fd5b505afa158015612b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b269190810190614f3e565b846040518363ffffffff1660e01b8152600401612b44929190615af9565b600060405180830381600087803b158015612b5e57600080fd5b505af1158015612b72573d6000803e3d6000fd5b505050505050505b60005b600454811015612c6157826001600160a01b031660048281548110612b9e57fe5b6000918252602090912001546001600160a01b03161415612c595760048181548110612bc657fe5b600091825260209091200180546001600160a01b0319169055600480546000198101908110612bf157fe5b600091825260209091200154600480546001600160a01b039092169183908110612c1757fe5b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790556004805490612c53906000198301614b06565b50612c61565b600101612b7d565b506001600160a01b038216600090815260066020908152604080832083905585835260059091529081902080546001600160a01b0319169055517f6166f5c475cc1cd535c6cdf14a6d5edb811e34117031fc2863392a136eb655d090612cca9085908590615a45565b60405180910390a1505050565b612cdf614589565b6001600160a01b0316336001600160a01b03161480612da557506002546040516321f8a72160e01b81526001600160a01b03909116906321f8a72190612d409073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b90600401615a37565b60206040518083038186803b158015612d5857600080fd5b505afa158015612d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d909190810190614c97565b6001600160a01b0316336001600160a01b0316145b6128105760405162461bcd60e51b815260040161069690615c48565b6000610aa06822bc31b430b733b2b960b91b612ec1565b612de06145a4565b6001600160a01b0316631d5b277f6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b84604051602001612e1c9291906158f3565b60405160208183030381529060405280519060200120426040518463ffffffff1660e01b815260040161199c93929190615a61565b600080600080612e70612e6386613aa7565b631cd554d160e21b613b2c565b91945092509050600080612e8387612793565b915091508195508280612e935750805b9250858510612ea55760009550612eb8565b612eb5868663ffffffff613c0a16565b95505b50509193509193565b60008181526003602090815260408083205490516001600160a01b039091169182151591612ef191869101615919565b6040516020818303038152906040529061208e5760405162461bcd60e51b81526004016106969190615b07565b6000806000806000856001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015612f5f57600080fd5b505afa158015612f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f979190810190615092565b939a9299509097509550909350915050565b600080600080612fd56109b3766578743a41676772656761746f7244656274526174696f60481b612ec1565b50919650909450505050509091565b6000612ffd83836b033b2e3c9fd0803ce80000006145c1565b9392505050565b600061300e6145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b815260040161305e929190615a53565b60206040518083038186803b15801561307657600080fd5b505afa15801561308a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aa09190810190614ec2565b60006130b86145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b815260040161305e929190615a53565b613111614605565b6001600160a01b0316637d3f0ba283836040518363ffffffff1660e01b815260040161313e929190615952565b60206040518083038186803b15801561315657600080fd5b505afa15801561316a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061318e9190810190614e86565b6106cb5760405162461bcd60e51b815260040161069690615b48565b6131b2614274565b156131bc57610e5e565b80613319576131ca836141dc565b6131e65760405162461bcd60e51b815260040161069690615c88565b6000806131f1612dc1565b6001600160a01b0316631b16802c86631cd554d160e21b6040518363ffffffff1660e01b8152600401613225929190615988565b606060405180830381600087803b15801561323f57600080fd5b505af1158015613253573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613277919081019061504f565b90935091505080156133165761328b612dc1565b6001600160a01b0316634c268fc886631cd554d160e21b87866040518563ffffffff1660e01b81526004016132c394939291906159a3565b60206040518083038186803b1580156132db57600080fd5b505afa1580156132ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133139190810190614ec2565b93505b50505b600080613328612e6386613aa7565b925050915060008061333987612793565b9150915061334e83806133495750815b61443d565b6000841161336e5760405162461bcd60e51b815260040161069690615b68565b841561338757613384848363ffffffff613c0a16565b95505b600061339588898988614624565b9050826133a8868363ffffffff613c0a16565b11610959576133b5613c32565b6001600160a01b031663974e9e7f896040518263ffffffff1660e01b81526004016133e09190615944565b600060405180830381600087803b1580156133fa57600080fd5b505af115801561340e573d6000803e3d6000fd5b505050505050505050505050565b6000610aa07153796e74686574697844656274536861726560701b612ec1565b613444614605565b6001600160a01b0316630487261783836040518363ffffffff1660e01b815260040161313e929190615952565b6000816001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b1580156134ac57600080fd5b505afa1580156134c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506134e49190810190614ec2565b6000818152600560205260409020549091506001600160a01b03161561351c5760405162461bcd60e51b815260040161069690615c78565b6001600160a01b038216600090815260066020526040902054156135525760405162461bcd60e51b815260040161069690615c18565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0384166001600160a01b03199182168117909255600083815260056020908152604080832080549094168517909355928152600690925290819020829055517f0a2b6ebf143b3e9fcd67e17748ad315174746100c27228468b2c98c302c62884906135f69083908590615a45565b60405180910390a15050565b6000610aa06c45786368616e6765526174657360981b612ec1565b6060808261362c57600061362f565b60015b60ff1660048054905001604051908082528060200260200182016040528015613662578160200160208202803883390190505b50905060005b6004548110156136c957600660006004838154811061368357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205482518390839081106136b657fe5b6020908102919091010152600101613668565b508215610e0a576004548151620a69cb60eb1b91839181106136e757fe5b60200260200101818152505092915050565b600080600080600061370d612e6388613aa7565b9193509091506000905080613727620a69cb60eb1b613f0c565b9150915061373b838061334957508161443d565b600088156139195761374b614751565b9050613755613c32565b6001600160a01b031663f557f73c866137766137708e614140565b87614577565b846040518463ffffffff1660e01b815260040161379593929190615a61565b60206040518083038186803b1580156137ad57600080fd5b505afa1580156137c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506137e59190810190614ec2565b965061389d61388f6138798373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561383557600080fd5b505af4158015613849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061386d9190810190614ec2565b9063ffffffff6147b216565b6138838a876147d7565b9063ffffffff613f9116565b6138988c6147e9565b6147f3565b97506139096139036138ed8373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561383557600080fd5b6138f78b87614577565b9063ffffffff61480916565b886147f3565b9650600095506110169350505050565b613921614827565b90506000613938613930614887565b61386d6148dc565b9050600061395e6139588361394c8f614140565b9063ffffffff613c0a16565b86614577565b9050613968613c32565b6001600160a01b031663f557f73c8883866040518463ffffffff1660e01b815260040161399793929190615a61565b60206040518083038186803b1580156139af57600080fd5b505afa1580156139c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506139e79190810190614ec2565b98506000613a40613a368573__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561383557600080fd5b6138838c896147d7565b9050613a4b8d614140565b613a5b828563ffffffff6147b216565b10613a8a57879950613a708361394c8f614140565b9a50613a7b8d614936565b98506110169650505050505050565b613a958d8285614940565b909b5098506110169650505050505050565b6000613ab161341c565b6001600160a01b03166370a08231836040518263ffffffff1660e01b8152600401613adc9190615944565b60206040518083038186803b158015613af457600080fd5b505afa158015613b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e0a9190810190614ec2565b6000806000806000613b3c61097f565b92505091508660001415613b5857600094509092509050613b96565b600080613b6488613f0c565b91509150613b8182613b758b61499b565b9063ffffffff613bf516565b96508395508080613b8f5750825b9450505050505b9250925092565b6000613ba76145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b815260040161305e929190615a53565b6000612ffd8383670de0b6b3a76400006145c1565b600082821115613c2c5760405162461bcd60e51b815260040161069690615b88565b50900390565b6000610aa0692634b8bab4b230ba37b960b11b612ec1565b613c526149b9565b6001600160a01b031663270fb338846040518263ffffffff1660e01b8152600401613c7d9190615944565b600060405180830381600087803b158015613c9757600080fd5b505af1158015613cab573d6000803e3d6000fd5b505050506000613cb961341c565b90506000613cc685613aa7565b905082841415613cfe57604051631a378f0d60e01b81526001600160a01b03831690631a378f0d906117df9088908590600401615988565b6000613d09856149d8565b9050826001600160a01b0316631a378f0d87848410613d285784613d2a565b835b6040518363ffffffff1660e01b8152600401613d47929190615988565b600060405180830381600087803b158015613d6157600080fd5b505af1158015613d75573d6000803e3d6000fd5b50505050505050505050565b6000806000806000613d91612812565b6001600160a01b0316633a900a2e6040518163ffffffff1660e01b815260040160806040518083038186803b158015613dc957600080fd5b505afa158015613ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613e019190810190614ffa565b935093505092508180613e115750805b935085613eb757600080613e23612812565b6001600160a01b0316632992dba26040518163ffffffff1660e01b8152600401604080518083038186803b158015613e5a57600080fd5b505afa158015613e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613e929190810190614f98565b9092509050613ea7858363ffffffff6147b216565b94508580613eb25750805b955050505b631cd554d160e21b871415613ed15750909250613f059050565b600080613edd89613f0c565b9092509050613ef2858363ffffffff613bf516565b8680613efb5750815b9650965050505050505b9250929050565b600080613f17613602565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401613f429190615a37565b604080518083038186803b158015613f5957600080fd5b505afa158015613f6d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120ac9190810190614f98565b6000670de0b6b3a7640000613fac848463ffffffff614a0a16565b81613fb357fe5b049392505050565b6000600160ff1b8210613fe05760405162461bcd60e51b815260040161069690615c98565b5090565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061402657fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015614065578160200160208202803883390190505b50905060005b83518110156140a75783818151811061408057fe5b602002602001015182828151811061409457fe5b602090810291909101015260010161406b565b5060005b825181101561208e578281815181106140c057fe5b60200260200101518282865101815181106140d757fe5b60209081029190910101526001016140ab565b60008060006140f884614140565b905060008061410961103d87613aa7565b92505091508260001415614125576000945092506120b1915050565b614135828463ffffffff613bf516565b945092505050915091565b6000610e0a61414d6149b9565b6001600160a01b0316628cc262846040518263ffffffff1660e01b81526004016141779190615944565b60206040518083038186803b15801561418f57600080fd5b505afa1580156141a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506141c79190810190614ec2565b61386d6141d385614936565b61386d866147e9565b60006141f26141e96130ae565b61386d846141fb565b42101592915050565b60006142056145a4565b6001600160a01b03166323257c2b6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b856040516020016142419291906158f3565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401613adc929190615a53565b60008061429a766578743a41676772656761746f7244656274526174696f60481b612ec1565b90506000816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156142d757600080fd5b505afa1580156142eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061430f9190810190615092565b505050915050600061431f613602565b6001600160a01b031663045056f8620a69cb60eb1b6040518263ffffffff1660e01b81526004016143509190615a37565b606060405180830381600087803b15801561436a57600080fd5b505af115801561437e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506143a29190810190614fb7565b509150506143ae614a44565b6001600160a01b031663413caeb584846040518363ffffffff1660e01b81526004016143db929190615988565b602060405180830381600087803b1580156143f557600080fd5b505af1158015614409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061442d9190810190614e86565b806144355750805b935050505090565b8015610f595760405162461bcd60e51b815260040161069690615bc8565b6144636149b9565b6001600160a01b031663270fb338836040518263ffffffff1660e01b815260040161448e9190615944565b600060405180830381600087803b1580156144a857600080fd5b505af11580156144bc573d6000803e3d6000fd5b5050505060006144ca61341c565b905060006144d7836149d8565b90508061454357604051636178258560e11b81526001600160a01b0383169063c2f04b0a9061450c9087908790600401615988565b600060405180830381600087803b15801561452657600080fd5b505af115801561453a573d6000803e3d6000fd5b50505050614571565b604051636178258560e11b81526001600160a01b0383169063c2f04b0a9061092b9087908590600401615988565b50505050565b6000612ffd838363ffffffff614a6016565b6000610aa06c29bcb73a342932b232b2b6b2b960991b612ec1565b6000610aa06e466c657869626c6553746f7261676560881b612ec1565b6000806145e7846145db87600a870263ffffffff614a0a16565b9063ffffffff614a7516565b90506005600a825b06106145f957600a015b600a9004949350505050565b6000610aa07044656c6567617465417070726f76616c7360781b612ec1565b600061462e614274565b1561463b57506000614749565b828210614648578261464a565b815b9050614657858284613c4a565b631cd554d160e21b6000526005602052600080516020615e5283398151915254604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906146a69087908590600401615988565b600060405180830381600087803b1580156146c057600080fd5b505af11580156146d4573d6000803e3d6000fd5b505050506146e0612812565b6001600160a01b03166342c7b8196146f783613fbb565b6000036040518263ffffffff1660e01b81526004016147169190615a37565b600060405180830381600087803b15801561473057600080fd5b505af1158015614744573d6000803e3d6000fd5b505050505b949350505050565b600061475b6145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7573656c664c69717569646174696f6e50656e616c747960501b6040518363ffffffff1660e01b815260040161305e929190615a53565b600082820183811015612ffd5760405162461bcd60e51b815260040161069690615b58565b6000612ffd838363ffffffff613bf516565b6000613ab1612652565b60008183106148025781612ffd565b5090919050565b6000612ffd826145db85670de0b6b3a764000063ffffffff614a0a16565b60006148316145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b74736e784c69717569646174696f6e50656e616c747960581b6040518363ffffffff1660e01b815260040161305e929190615a53565b60006148916145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b69199b1859d4995dd85c9960b21b6040518363ffffffff1660e01b815260040161305e929190615a53565b60006148e66145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1b1a5c5d5a59185d1954995dd85c99608a1b6040518363ffffffff1660e01b815260040161305e929190615a53565b6000613ab1614aaa565b600080600061494e866147e9565b905080614961868663ffffffff6147b216565b11614973575083915060009050614993565b6149878161394c878763ffffffff6147b216565b85935091506149939050565b935093915050565b6000806149a6612fa9565b509050612ffd838263ffffffff614ac616565b6000610aa0704c697175696461746f725265776172647360781b612ec1565b6000806149e3612fa9565b5090508015614a01576149fc838263ffffffff612fe416565b612ffd565b50600092915050565b600082614a1957506000610e0a565b82820282848281614a2657fe5b0414612ffd5760405162461bcd60e51b815260040161069690615c28565b6000610aa06d21b4b931bab4ba213932b0b5b2b960911b612ec1565b6000612ffd8383670de0b6b3a7640000614adb565b6000808211614a965760405162461bcd60e51b815260040161069690615ba8565b6000828481614aa157fe5b04949350505050565b6000610aa06d2932bbb0b93222b9b1b937bbab1960911b612ec1565b6000612ffd83836b033b2e3c9fd0803ce80000005b600080600a8304614af2868663ffffffff614a0a16565b81614af957fe5b0490506005600a826145ef565b815481835581811115610e5e57600083815260209020610e5e918101908301610aa391905b80821115613fe05760008155600101614b2b565b8035610e0a81615e10565b8051610e0a81615e10565b60008083601f840112614b6757600080fd5b50813567ffffffffffffffff811115614b7f57600080fd5b602083019150836020820283011115613f0557600080fd5b600082601f830112614ba857600080fd5b8151614bbb614bb682615d31565b615d0a565b91508181835260208401935060208101905083856020840282011115614be057600080fd5b60005b83811015614c0c5781614bf68882614c37565b8452506020928301929190910190600101614be3565b5050505092915050565b8035610e0a81615e24565b8051610e0a81615e24565b8035610e0a81615e2d565b8051610e0a81615e2d565b8035610e0a81615e36565b8051610e0a81615e36565b8035610e0a81615e3f565b8051610e0a81615e3f565b8051610e0a81615e48565b600060208284031215614c8b57600080fd5b60006147498484614b3f565b600060208284031215614ca957600080fd5b60006147498484614b4a565b60008060408385031215614cc857600080fd5b6000614cd48585614b3f565b9250506020614ce585828601614b3f565b9150509250929050565b600080600060608486031215614d0457600080fd5b6000614d108686614b3f565b9350506020614d2186828701614b3f565b9250506040614d3286828701614c2c565b9150509250925092565b60008060408385031215614d4f57600080fd5b6000614d5b8585614b3f565b9250506020614ce585828601614c16565b60008060408385031215614d7f57600080fd5b6000614d8b8585614b3f565b9250506020614ce585828601614c2c565b60008060008060808587031215614db257600080fd5b6000614dbe8787614b3f565b9450506020614dcf87828801614c2c565b9350506040614de087828801614c2c565b9250506060614df187828801614c2c565b91505092959194509250565b60008060208385031215614e1057600080fd5b823567ffffffffffffffff811115614e2757600080fd5b614e3385828601614b55565b92509250509250929050565b60008060408385031215614e5257600080fd5b825167ffffffffffffffff811115614e6957600080fd5b614e7585828601614b97565b9250506020614ce585828601614c21565b600060208284031215614e9857600080fd5b60006147498484614c21565b600060208284031215614eb657600080fd5b60006147498484614c2c565b600060208284031215614ed457600080fd5b60006147498484614c37565b600080600060608486031215614ef557600080fd5b6000614d108686614c2c565b60008060408385031215614f1457600080fd5b6000614d5b8585614c2c565b600060208284031215614f3257600080fd5b60006147498484614c42565b600060208284031215614f5057600080fd5b60006147498484614c4d565b600060208284031215614f6e57600080fd5b60006147498484614c58565b600060208284031215614f8c57600080fd5b60006147498484614c63565b60008060408385031215614fab57600080fd5b6000614e758585614c37565b600080600060608486031215614fcc57600080fd5b6000614fd88686614c37565b9350506020614fe986828701614c21565b9250506040614d3286828701614c21565b6000806000806080858703121561501057600080fd5b600061501c8787614c37565b945050602061502d87828801614c37565b935050604061503e87828801614c21565b9250506060614df187828801614c21565b60008060006060848603121561506457600080fd5b60006150708686614c37565b935050602061508186828701614c37565b9250506040614d3286828701614c37565b600080600080600060a086880312156150aa57600080fd5b60006150b68888614c6e565b95505060206150c788828901614c37565b94505060406150d888828901614c37565b93505060606150e988828901614c37565b92505060806150fa88828901614c6e565b9150509295509295909350565b6000615113838361527e565b505060200190565b60006151138383615298565b61513081615d6a565b82525050565b61513061514282615d6a565b615def565b60006151538385615d5c565b93506001600160fb1b0383111561516957600080fd5b60208302925061517a838584615db7565b50500190565b600061518b82615d58565b6151958185615d5c565b93506151a083615d52565b8060005b838110156151ce5781516151b88882615107565b97506151c383615d52565b9250506001016151a4565b509495945050505050565b60006151e482615d58565b6151ee8185615d5c565b93506151f983615d52565b8060005b838110156151ce578151615211888261511b565b975061521c83615d52565b9250506001016151fd565b600061523282615d58565b61523c8185615d5c565b935061524783615d52565b8060005b838110156151ce57815161525f8882615107565b975061526a83615d52565b92505060010161524b565b61513081615d75565b61513081610aa3565b61513061529382610aa3565b610aa3565b61513081615d7a565b61513081615dac565b60006152b582615d58565b6152bf8185615d5c565b93506152cf818560208601615dc3565b6152d881615e00565b9093019392505050565b60006152ef601883615d5c565b7f6f6e65206d69677261746f72206d757374206265203078300000000000000000815260200192915050565b6000615328603583615d5c565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600061537f601483615d5c565b736f6e6c792074727573746564206d696e7465727360601b815260200192915050565b60006153af601d83615d5c565b7f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000815260200192915050565b60006153e8601b83615d5c565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000615421601283615d5c565b714e6f206465627420746f20666f726769766560701b815260200192915050565b600061544f601083615d5c565b6f416d6f756e7420746f6f206c6172676560801b815260200192915050565b600061547b601e83615d5c565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006154b4600e83615d5c565b6d09edcd8f240a6f2dce8d0cae8d2f60931b815260200192915050565b60006154de601a83615d5c565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000615517601183615d65565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000615544601083615d5c565b6f135d5cdd08189948199959481c1bdbdb60821b815260200192915050565b6000615570601e83615d5c565b7f412073796e7468206f7220534e58207261746520697320696e76616c69640000815260200192915050565b60006155a9601383615d5c565b721cde5b9d1a08191bd95cdb89dd08195e1a5cdd606a1b815260200192915050565b60006155d8601483615d5c565b7314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b815260200192915050565b6000615608601883615d5c565b7f4e6f74206f70656e20666f72206c69717569646174696f6e0000000000000000815260200192915050565b6000615641602f83615d5c565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b600061569e601c83615d5c565b7f53796e7468206164647265737320616c72656164792065786973747300000000815260200192915050565b60006156d7602183615d5c565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b600061571a601383615d5c565b72086c2dcdcdee840e4cadadeecca40e6f2dce8d606b1b815260200192915050565b6000615749601283615d5c565b7127b7363c9029bcb73a342932b232b2b6b2b960711b815260200192915050565b6000615777601583615d5c565b7463616e6e6f7420697373756520302073796e74687360581b815260200192915050565b60006157a8601983615d65565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006157e1601683615d5c565b756f6e6c792074727573746564206d69677261746f727360501b815260200192915050565b6000615813600c83615d5c565b6b53796e74682065786973747360a01b815260200192915050565b600061583b601e83615d5c565b7f4d696e696d756d207374616b652074696d65206e6f7420726561636865640000815260200192915050565b6000615874602883615d5c565b7f53616665436173743a2076616c756520646f65736e27742066697420696e2061815267371034b73a191a9b60c11b602082015260400192915050565b60006158be601a83615d5c565b7f43616e6e6f742072656d6f766520776974686f75742072617465000000000000815260200192915050565b61513081615d85565b60006158ff8285615287565b60208201915061590f8284615136565b5060140192915050565b60006159248261550a565b91506159308284615287565b50602001919050565b60006159248261579b565b60208101610e0a8284615127565b604081016159608285615127565b612ffd6020830184615127565b6040810161597b8285615127565b612ffd6020830184615275565b604081016159968285615127565b612ffd602083018461527e565b608081016159b18287615127565b6159be602083018661527e565b6159cb604083018561527e565b6159d8606083018461527e565b95945050505050565b604080825281016159f3818587615147565b905081810360208301526159d88184615227565b60208082528101612ffd8184615180565b60208082528101612ffd81846151d9565b60208101610e0a8284615275565b60208101610e0a828461527e565b60408101615960828561527e565b60408101615996828561527e565b60608101615a6f828661527e565b615a7c602083018561527e565b614749604083018461527e565b60408101615a97828561527e565b612ffd60208301846152a1565b60408101615ab2828561527e565b818103602083015261474981846152aa565b60608101615ad2828561527e565b615adf602083018461527e565b612ffd60408301615685565b60208101610e0a8284615298565b604081016159968285615298565b60208082528101612ffd81846152aa565b60208082528101610e0a816152e2565b60208082528101610e0a8161531b565b60208082528101610e0a81615372565b60208082528101610e0a816153a2565b60208082528101610e0a816153db565b60208082528101610e0a81615414565b60208082528101610e0a81615442565b60208082528101610e0a8161546e565b60208082528101610e0a816154a7565b60208082528101610e0a816154d1565b60208082528101610e0a81615537565b60208082528101610e0a81615563565b60208082528101610e0a8161559c565b60208082528101610e0a816155cb565b60208082528101610e0a816155fb565b60208082528101610e0a81615634565b60208082528101610e0a81615691565b60208082528101610e0a816156ca565b60208082528101610e0a8161570d565b60208082528101610e0a8161573c565b60208082528101610e0a8161576a565b60208082528101610e0a816157d4565b60208082528101610e0a81615806565b60208082528101610e0a8161582e565b60208082528101610e0a81615867565b60208082528101610e0a816158b1565b60208101610e0a82846158ea565b6040810161597b828561527e565b60608101615ce2828661527e565b615cef602083018561527e565b6147496040830184615275565b608081016159b1828761527e565b60405181810167ffffffffffffffff81118282101715615d2957600080fd5b604052919050565b600067ffffffffffffffff821115615d4857600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b919050565b6000610e0a82615d91565b151590565b6000610e0a82615d6a565b6001600160801b031690565b6001600160a01b031690565b69ffffffffffffffffffff1690565b6000610e0a82610aa3565b82818337506000910152565b60005b83811015615dde578181015183820152602001615dc6565b838111156145715750506000910152565b6000610e0a826000610e0a82615e0a565b601f01601f191690565b60601b90565b615e1981615d6a565b8114610f5957600080fd5b615e1981615d75565b615e1981610aa3565b615e1981615d7a565b615e1981615d85565b615e1981615d9d56fe74c62d09fbc50aefae0794a9a068f786a692826fbdfe63828ec23a875865823fa365627a7a72315820160805ca78bb540916fefaeb9c5060d6b370e423bfb95c7cb75099eaad4f23326c6578706572696d656e74616cf564736f6c63430005100040", + "bytecode": "60806040523480156200001157600080fd5b506040516200618e3803806200618e8339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b615f6b80620002236000396000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c806372c6581611610182578063a311c7c2116100e9578063c81ff8fa116100a2578063d686c06c1161007c578063d686c06c1461061d578063dbf6334014610630578063dd3d2b2e14610638578063fd864ccf1461064b576102bb565b8063c81ff8fa146105e4578063c8977132146105f7578063d37c4d8b1461060a576102bb565b8063a311c7c21461057d578063a5fdc5de14610590578063ae3bbbbb146105a3578063b06e8c65146105b6578063b410a034146105c9578063bff4fdfc146105d1576102bb565b8063835e119c1161013b578063835e119c14610521578063849cf58814610534578063890235d414610547578063899ffef41461055a5780638da5cb5b146105625780639a5154b41461056a576102bb565b806372c65816146104c357806372cb051f146104d657806374185360146104eb57806379ba5097146104f35780637b1001b7146104fb57806380aa6a911461050e576102bb565b806331e6da5a116102265780634e99bda9116101df5780634e99bda91461044757806353a47bb71461044f5780635e887fe914610464578063614d08f8146104875780636bed04151461048f5780637168d2c2146104b0576102bb565b806331e6da5a146103c857806332608039146103db5780633b6afe40146103ee57806344ec6b621461040e57806347a9b6db14610421578063497d704a14610434576102bb565b80631313e6ca116102785780631313e6ca1461035b5780631627540c1461037257806316b2213f14610385578063242df9e1146103985780632af64bd3146103a05780632b3f41aa146103b5576102bb565b8063042e0688146102c057806304f3bcec146102d557806305b3c1c9146102f35780630b887dae146103135780630d969cf5146103265780631137aedf14610339575b600080fd5b6102d36102ce366004614e23565b61065e565b005b6102dd6106cf565b6040516102ea9190615ba2565b60405180910390f35b610306610301366004614d30565b6106de565b6040516102ea9190615aee565b6102d3610321366004614f5b565b6106f2565b6102d3610334366004614e53565b6107d0565b61034c610347366004614d30565b610963565b6040516102ea93929190615b18565b61036361097f565b6040516102ea93929190615d8b565b6102d3610380366004614d30565b610a26565b610306610393366004614d30565b610a84565b610306610a96565b6103a8610aa6565b6040516102ea9190615ae0565b6102d36103c3366004614d6c565b610bbd565b6102d36103d6366004615013565b610c0c565b6102dd6103e9366004614f5b565b610d47565b6104016103fc366004614eb4565b610d62565b6040516102ea9190615acf565b6102d361041c366004614da6565b610e10565b6102d361042f366004614eb4565b610e63565b6102d3610442366004614d30565b610f14565b6103a8610f5c565b610457610fee565b6040516102ea91906159fb565b610477610472366004614df3565b610ffd565b6040516102ea9493929190615db3565b61030661101f565b6104a261049d366004614e23565b61102c565b6040516102ea929190615d7d565b6102d36104be366004614eb4565b611098565b61034c6104d1366004614df3565b6111cd565b6104de61133f565b6040516102ea9190615abe565b6102d361134b565b6102d361149d565b610306610509366004614fb8565b611539565b6102d361051c366004614e23565b611545565b6102dd61052f366004614f5b565b611930565b6102d3610542366004614fd7565b611957565b6103a8610555366004614f97565b6119ca565b6104de611d50565b610457612026565b6102d3610578366004614da6565b612035565b61030661058b366004614d30565b612083565b61030661059e366004614d30565b612095565b6104a26105b1366004614d30565b6120a0565b6102d36105c4366004614e23565b6120b6565b6103066120fa565b6103a86105df366004614d30565b612104565b6103a86105f2366004614f97565b61210f565b6102d3610605366004614d30565b6124d5565b610306610618366004614e23565b61251a565b6102d361062b366004614da6565b61254c565b6103066125f2565b610306610646366004614d30565b6125f8565b6102d3610659366004614d6c565b612603565b610666612652565b6001600160a01b0316336001600160a01b03161461069f5760405162461bcd60e51b815260040161069690615c4f565b60405180910390fd5b600081116106bf5760405162461bcd60e51b815260040161069690615d0f565b6106cb82826000612669565b5050565b6002546001600160a01b031681565b6000806106ea83612793565b509392505050565b6106fa61289d565b60006107046128c9565b604051636b42ba1d60e11b81529091506001600160a01b0382169063d685743a90610736908590600090600401615b40565b600060405180830381600087803b15801561075057600080fd5b505af1158015610764573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03841692506304bd11e5915061079590600190600401615ae0565b600060405180830381600087803b1580156107af57600080fd5b505af11580156107c3573d6000803e3d6000fd5b505050506106cb826128e0565b6107d8612d8e565b6107e0612e78565b6001600160a01b0316631b16802c85856040518363ffffffff1660e01b815260040161080d929190615a3f565b606060405180830381600087803b15801561082757600080fd5b505af115801561083b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061085f9190810190615106565b50505060008381526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906108a19087908690600401615a3f565b600060405180830381600087803b1580156108bb57600080fd5b505af11580156108cf573d6000803e3d6000fd5b505050506108dc84612e8f565b631cd554d160e21b6000526005602052600080516020615f098339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b49061092b9087908590600401615a3f565b600060405180830381600087803b15801561094557600080fd5b505af1158015610959573d6000803e3d6000fd5b5050505050505050565b600080600061097184612f08565b509196909550909350915050565b60008060008060006109b86109b37f6578743a41676772656761746f7249737375656453796e746873000000000000612f78565b612fd5565b509350509250506000806109ca613060565b91509150839650816000146109ee576109e9878363ffffffff61309b16565b6109f1565b60005b955060006109fd6130bb565b90504281108015610a1a5750838142031180610a1a575081814203115b95505050505050909192565b610a2e61289d565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610a799083906159fb565b60405180910390a150565b60066020526000908152604090205481565b6000610aa0613165565b90505b90565b60006060610ab2611d50565b905060005b8151811015610bb4576000828281518110610ace57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610b1f908590600401615aee565b60206040518083038186803b158015610b3757600080fd5b505afa158015610b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b6f9190810190614d4e565b6001600160a01b0316141580610b9a57506000818152600360205260409020546001600160a01b0316155b15610bab5760009350505050610aa3565b50600101610ab7565b50600191505090565b610bc5612652565b6001600160a01b0316336001600160a01b031614610bf55760405162461bcd60e51b815260040161069690615c4f565b610bff82826131c0565b6106cb8260006001613261565b610c1f66119959541bdbdb60ca1b612f78565b6001600160a01b0316336001600160a01b031614610c4f5760405162461bcd60e51b815260040161069690615c6f565b6000610c596134d3565b9050816001600160801b0316816001600160a01b031663988e65956040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9e57600080fd5b505afa158015610cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cd69190810190615031565b6001600160801b031610156106cb5760405163abb6de9560e01b81526001600160a01b0382169063abb6de9590610d11908590600401615d6f565b600060405180830381600087803b158015610d2b57600080fd5b505af1158015610d3f573d6000803e3d6000fd5b505050505050565b6005602052600090815260409020546001600160a01b031681565b60408051828152602080840282010190915260609082908290828015610d92578160200160208202803883390190505b50905060005b82811015610e055760056000878784818110610db057fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b0316828281518110610de557fe5b6001600160a01b0390921660209283029190910190910152600101610d98565b509150505b92915050565b610e18612652565b6001600160a01b0316336001600160a01b031614610e485760405162461bcd60e51b815260040161069690615c4f565b610e5283836134f3565b610e5e83826000612669565b505050565b610e6b61289d565b8060005b81811015610ea857610ea0848483818110610e8657fe5b9050602002016020610e9b9190810190614fd7565b613528565b600101610e6f565b50610eb16128c9565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b8152600401610edd9190615ae0565b600060405180830381600087803b158015610ef757600080fd5b505af1158015610f0b573d6000803e3d6000fd5b50505050505050565b610f1c612652565b6001600160a01b0316336001600160a01b031614610f4c5760405162461bcd60e51b815260040161069690615c4f565b610f598160006001613261565b50565b6000610f666136b9565b6001600160a01b031663c8e5bbd5610f7e60016136d4565b6040518263ffffffff1660e01b8152600401610f9a9190615abe565b60006040518083038186803b158015610fb257600080fd5b505afa158015610fc6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0a9190810190614ef6565b6001546001600160a01b031681565b60008060008061100d86866137b0565b93509350935093505b92959194509250565b6524b9b9bab2b960d11b81565b600080600061104961103d86613b5e565b620a69cb60eb1b613be3565b93509091506000905061106a61105d613c54565b839063ffffffff613cac16565b905084811061107c576000935061108f565b61108c858263ffffffff613cc116565b93505b50509250929050565b6110a061289d565b8060006110ab6128c9565b90506060826040519080825280602002602001820160405280156110d9578160200160208202803883390190505b506040516305ece36d60e21b81529091506001600160a01b038316906317b38db49061110d90889088908690600401615a98565b600060405180830381600087803b15801561112757600080fd5b505af115801561113b573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03851692506304bd11e5915061116c90600190600401615ae0565b600060405180830381600087803b15801561118657600080fd5b505af115801561119a573d6000803e3d6000fd5b506000925050505b83811015610d3f576111c58686838181106111b957fe5b905060200201356128e0565b6001016111a2565b60008060006111da612652565b6001600160a01b0316336001600160a01b03161461120a5760405162461bcd60e51b815260040161069690615c4f565b611212613ce9565b6001600160a01b031663952225f386866040518363ffffffff1660e01b815260040161123f929190615a24565b60206040518083038186803b15801561125757600080fd5b505afa15801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061128f9190810190614f3d565b6112ab5760405162461bcd60e51b815260040161069690615caf565b60006112b786866137b0565b929650909450925090506112cc868483613d01565b84611337576112d9613ce9565b6001600160a01b031663974e9e7f876040518263ffffffff1660e01b815260040161130491906159fb565b600060405180830381600087803b15801561131e57600080fd5b505af1158015611332573d6000803e3d6000fd5b505050505b509250925092565b6060610aa060006136d4565b6060611355611d50565b905060005b81518110156106cb57600082828151811061137157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016113b391906159f0565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016113df929190615b5b565b60206040518083038186803b1580156113f757600080fd5b505afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061142f9190810190614d4e565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061148b9084908490615afc565b60405180910390a1505060010161135a565b6001546001600160a01b031633146114c75760405162461bcd60e51b815260040161069690615bdf565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261150a926001600160a01b0391821692911690615a09565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006106ea8383613e38565b6002546040516321f8a72160e01b81526000916001600160a01b0316906321f8a7219061158f9075446562744d69677261746f724f6e457468657265756d60501b90600401615aee565b60206040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115df9190810190614d4e565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061162e9075446562744d69677261746f724f6e4f7074696d69736d60501b90600401615aee565b60206040518083038186803b15801561164657600080fd5b505afa15801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061167e9190810190614d4e565b9050336001600160a01b038316148061169f5750336001600160a01b038216145b6116bb5760405162461bcd60e51b815260040161069690615d1f565b6001600160a01b03821615806116d857506001600160a01b038116155b6116f45760405162461bcd60e51b815260040161069690615bcf565b60006116fe6134d3565b6002546040516321f8a72160e01b81529192506001600160a01b0316906321f8a721906117489075446562744d69677261746f724f6e457468657265756d60501b90600401615aee565b60206040518083038186803b15801561176057600080fd5b505afa158015611774573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117989190810190614d4e565b6001600160a01b0316336001600160a01b0316141561181657604051631a378f0d60e01b81526001600160a01b03821690631a378f0d906117df9088908890600401615a3f565b600060405180830381600087803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50505050611929565b6002546040516321f8a72160e01b81526001600160a01b03909116906321f8a7219061185f9075446562744d69677261746f724f6e4f7074696d69736d60501b90600401615aee565b60206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118af9190810190614d4e565b6001600160a01b0316336001600160a01b0316141561192957604051636178258560e11b81526001600160a01b0382169063c2f04b0a906118f69088908890600401615a3f565b600060405180830381600087803b15801561191057600080fd5b505af1158015611924573d6000803e3d6000fd5b505050505b5050505050565b6004818154811061193d57fe5b6000918252602090912001546001600160a01b0316905081565b61195f61289d565b61196881613528565b6119706128c9565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b815260040161199c9190615ae0565b600060405180830381600087803b1580156119b657600080fd5b505af1158015611929573d6000803e3d6000fd5b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190611a1b907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615aee565b60206040518083038186803b158015611a3357600080fd5b505afa158015611a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a6b9190810190614d4e565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611ab9907453796e746865746978427269646765546f4261736560581b90600401615aee565b60206040518083038186803b158015611ad157600080fd5b505afa158015611ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b099190810190614d4e565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611b499066119959541bdbdb60ca1b90600401615aee565b60206040518083038186803b158015611b6157600080fd5b505afa158015611b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b999190810190614d4e565b9050336001600160a01b0384161480611bba5750336001600160a01b038316145b80611bcd5750336001600160a01b038216145b611be95760405162461bcd60e51b815260040161069690615bef565b6000878152600560205260409020546001600160a01b0316611c1d5760405162461bcd60e51b815260040161069690615c8f565b60008511611c3d5760405162461bcd60e51b815260040161069690615d0f565b611c4686612e8f565b6000878152600560205260409081902054905163219e412d60e21b81526001600160a01b039091169063867904b490611c859089908990600401615a3f565b600060405180830381600087803b158015611c9f57600080fd5b505af1158015611cb3573d6000803e3d6000fd5b50505050600080611cc389613fc3565b91509150611ccf6128c9565b6001600160a01b03166342c7b819611cf5611cf08a8663ffffffff61404816565b614072565b6040518263ffffffff1660e01b8152600401611d119190615aee565b600060405180830381600087803b158015611d2b57600080fd5b505af1158015611d3f573d6000803e3d6000fd5b50929b9a5050505050505050505050565b606080611d5b61409b565b60408051600f808252610200820190925291925060609190602082016101e080388339019050509050680a6f2dce8d0cae8d2f60bb1b81600081518110611d9e57fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110611dc457fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110611dee57fe5b6020026020010181815250506d21b4b931bab4ba213932b0b5b2b960911b81600381518110611e1957fe5b6020026020010181815250507153796e74686574697844656274536861726560701b81600481518110611e4857fe5b60200260200101818152505066119959541bdbdb60ca1b81600581518110611e6c57fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b81600681518110611e9a57fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b81600781518110611ec557fe5b602002602001018181525050692634b8bab4b230ba37b960b11b81600881518110611eec57fe5b602002602001018181525050704c697175696461746f725265776172647360781b81600981518110611f1a57fe5b6020026020010181815250506844656274436163686560b81b81600a81518110611f4057fe5b6020026020010181815250506c29bcb73a342932b232b2b6b2b960991b81600b81518110611f6a57fe5b60200260200101818152505073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b81600c81518110611f9b57fe5b6020026020010181815250507f6578743a41676772656761746f7249737375656453796e74687300000000000081600d81518110611fd557fe5b602002602001018181525050766578743a41676772656761746f7244656274526174696f60481b81600e8151811061200957fe5b60200260200101818152505061201f82826140ec565b9250505090565b6000546001600160a01b031681565b61203d612652565b6001600160a01b0316336001600160a01b03161461206d5760405162461bcd60e51b815260040161069690615c4f565b61207783836131c0565b610e5e83826000613261565b600061208e826141a1565b5092915050565b6000610e0a826141f7565b6000806120ac836141a1565b915091505b915091565b6120be612652565b6001600160a01b0316336001600160a01b0316146120ee5760405162461bcd60e51b815260040161069690615c4f565b6106cb82826000613261565b6000610aa0613c54565b6000610e0a82614293565b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190612160907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615aee565b60206040518083038186803b15801561217857600080fd5b505afa15801561218c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121b09190810190614d4e565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a721906121fe907453796e746865746978427269646765546f4261736560581b90600401615aee565b60206040518083038186803b15801561221657600080fd5b505afa15801561222a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061224e9190810190614d4e565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061228e9066119959541bdbdb60ca1b90600401615aee565b60206040518083038186803b1580156122a657600080fd5b505afa1580156122ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122de9190810190614d4e565b9050336001600160a01b03841614806122ff5750336001600160a01b038316145b806123125750336001600160a01b038216145b61232e5760405162461bcd60e51b815260040161069690615bef565b6000878152600560205260409020546001600160a01b03166123625760405162461bcd60e51b815260040161069690615c8f565b600085116123825760405162461bcd60e51b815260040161069690615d0f565b61238a612e78565b6001600160a01b0316631b16802c87896040518363ffffffff1660e01b81526004016123b7929190615a3f565b606060405180830381600087803b1580156123d157600080fd5b505af11580156123e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124099190810190615106565b50505060008781526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061244b9089908990600401615a3f565b600060405180830381600087803b15801561246557600080fd5b505af1158015612479573d6000803e3d6000fd5b5050505060008061248989613fc3565b915091506124956128c9565b6001600160a01b03166342c7b8196124b6611cf08a8663ffffffff61404816565b6000036040518263ffffffff1660e01b8152600401611d119190615aee565b6124dd612652565b6001600160a01b0316336001600160a01b03161461250d5760405162461bcd60e51b815260040161069690615c4f565b610f598160006001612669565b60008061252684613b5e565b905080612537576000915050610e0a565b6125418184613be3565b509095945050505050565b612554612d8e565b826001600160a01b031663d4b839926040518163ffffffff1660e01b815260040160206040518083038186803b15801561258d57600080fd5b505afa1580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125c59190810190614d4e565b6001600160a01b0316639dc29fac83836040518363ffffffff1660e01b8152600401610edd929190615a3f565b60045490565b6000610e0a826142b2565b61260b612652565b6001600160a01b0316336001600160a01b03161461263b5760405162461bcd60e51b815260040161069690615c4f565b61264582826134f3565b6106cb8260006001612669565b6000610aa0680a6f2dce8d0cae8d2f60bb1b612f78565b61267161432b565b1561267b57610e5e565b60008061268785612f08565b935050509150612696816144f4565b826126c057818411156126bb5760405162461bcd60e51b815260040161069690615c2f565b6126c4565b8193505b6126ce8585614512565b6126d785612e8f565b631cd554d160e21b6000526005602052600080516020615f098339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b4906127269088908890600401615a3f565b600060405180830381600087803b15801561274057600080fd5b505af1158015612754573d6000803e3d6000fd5b505050506127606128c9565b6001600160a01b03166342c7b81961277786614072565b6040518263ffffffff1660e01b81526004016118f69190615aee565b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a721906127d7906b131959d858de53585c9ad95d60a21b90600401615aee565b60206040518083038186803b1580156127ef57600080fd5b505afa158015612803573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128279190810190614d4e565b6001600160a01b0316836001600160a01b0316141561284d5750600019905060006120b1565b60008061285f620a69cb60eb1b613fc3565b915091506000612877612871876141f7565b8461462e565b9050612891612884613c54565b829063ffffffff61404816565b94509092505050915091565b6000546001600160a01b031633146128c75760405162461bcd60e51b815260040161069690615cbf565b565b6000610aa06844656274436163686560b81b612f78565b6000818152600560205260409020546001600160a01b0316806129155760405162461bcd60e51b815260040161069690615c9f565b631cd554d160e21b82141561293c5760405162461bcd60e51b815260040161069690615cef565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561297757600080fd5b505afa15801561298b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129af9190810190614f79565b90508015612c31576000806129c26136b9565b6001600160a01b0316638295016a86856040518363ffffffff1660e01b81526004016129ef929190615b7b565b60606040518083038186803b158015612a0757600080fd5b505afa158015612a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a3f9190810190615106565b509150915060008111612a645760405162461bcd60e51b815260040161069690615d5f565b6000612a6e614640565b631cd554d160e21b6000526005602052600080516020615f098339815191525460405163219e412d60e21b81529192506001600160a01b03169063867904b490612abe9084908790600401615a3f565b600060405180830381600087803b158015612ad857600080fd5b505af1158015612aec573d6000803e3d6000fd5b50505050612af86128c9565b6001600160a01b03166342c7b819612b0f85614072565b6040518263ffffffff1660e01b8152600401612b2b9190615aee565b600060405180830381600087803b158015612b4557600080fd5b505af1158015612b59573d6000803e3d6000fd5b50505050806001600160a01b0316633a70599c866001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b158015612ba557600080fd5b505afa158015612bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612bdd9190810190614ff5565b846040518363ffffffff1660e01b8152600401612bfb929190615bb0565b600060405180830381600087803b158015612c1557600080fd5b505af1158015612c29573d6000803e3d6000fd5b505050505050505b60005b600454811015612d1857826001600160a01b031660048281548110612c5557fe5b6000918252602090912001546001600160a01b03161415612d105760048181548110612c7d57fe5b600091825260209091200180546001600160a01b0319169055600480546000198101908110612ca857fe5b600091825260209091200154600480546001600160a01b039092169183908110612cce57fe5b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790556004805490612d0a906000198301614bbd565b50612d18565b600101612c34565b506001600160a01b038216600090815260066020908152604080832083905585835260059091529081902080546001600160a01b0319169055517f6166f5c475cc1cd535c6cdf14a6d5edb811e34117031fc2863392a136eb655d090612d819085908590615afc565b60405180910390a1505050565b612d96614640565b6001600160a01b0316336001600160a01b03161480612e5c57506002546040516321f8a72160e01b81526001600160a01b03909116906321f8a72190612df79073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b90600401615aee565b60206040518083038186803b158015612e0f57600080fd5b505afa158015612e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e479190810190614d4e565b6001600160a01b0316336001600160a01b0316145b6128c75760405162461bcd60e51b815260040161069690615cff565b6000610aa06822bc31b430b733b2b960b91b612f78565b612e9761465b565b6001600160a01b0316631d5b277f6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b84604051602001612ed39291906159aa565b60405160208183030381529060405280519060200120426040518463ffffffff1660e01b815260040161199c93929190615b18565b600080600080612f27612f1a86613b5e565b631cd554d160e21b613be3565b91945092509050600080612f3a87612793565b915091508195508280612f4a5750805b9250858510612f5c5760009550612f6f565b612f6c868663ffffffff613cc116565b95505b50509193509193565b60008181526003602090815260408083205490516001600160a01b039091169182151591612fa8918691016159d0565b6040516020818303038152906040529061208e5760405162461bcd60e51b81526004016106969190615bbe565b6000806000806000856001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561301657600080fd5b505afa15801561302a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061304e9190810190615149565b939a9299509097509550909350915050565b60008060008061308c6109b3766578743a41676772656761746f7244656274526174696f60481b612f78565b50919650909450505050509091565b60006130b483836b033b2e3c9fd0803ce8000000614678565b9392505050565b60006130c561465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b8152600401613115929190615b0a565b60206040518083038186803b15801561312d57600080fd5b505afa158015613141573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aa09190810190614f79565b600061316f61465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b8152600401613115929190615b0a565b6131c86146bc565b6001600160a01b0316637d3f0ba283836040518363ffffffff1660e01b81526004016131f5929190615a09565b60206040518083038186803b15801561320d57600080fd5b505afa158015613221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506132459190810190614f3d565b6106cb5760405162461bcd60e51b815260040161069690615bff565b61326961432b565b1561327357610e5e565b806133d05761328183614293565b61329d5760405162461bcd60e51b815260040161069690615d3f565b6000806132a8612e78565b6001600160a01b0316631b16802c86631cd554d160e21b6040518363ffffffff1660e01b81526004016132dc929190615a3f565b606060405180830381600087803b1580156132f657600080fd5b505af115801561330a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061332e9190810190615106565b90935091505080156133cd57613342612e78565b6001600160a01b0316634c268fc886631cd554d160e21b87866040518563ffffffff1660e01b815260040161337a9493929190615a5a565b60206040518083038186803b15801561339257600080fd5b505afa1580156133a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133ca9190810190614f79565b93505b50505b6000806133df612f1a86613b5e565b92505091506000806133f087612793565b9150915061340583806134005750815b6144f4565b600084116134255760405162461bcd60e51b815260040161069690615c1f565b841561343e5761343b848363ffffffff613cc116565b95505b600061344c888989886146db565b90508261345f868363ffffffff613cc116565b116109595761346c613ce9565b6001600160a01b031663974e9e7f896040518263ffffffff1660e01b815260040161349791906159fb565b600060405180830381600087803b1580156134b157600080fd5b505af11580156134c5573d6000803e3d6000fd5b505050505050505050505050565b6000610aa07153796e74686574697844656274536861726560701b612f78565b6134fb6146bc565b6001600160a01b0316630487261783836040518363ffffffff1660e01b81526004016131f5929190615a09565b6000816001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561356357600080fd5b505afa158015613577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061359b9190810190614f79565b6000818152600560205260409020549091506001600160a01b0316156135d35760405162461bcd60e51b815260040161069690615d2f565b6001600160a01b038216600090815260066020526040902054156136095760405162461bcd60e51b815260040161069690615ccf565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0384166001600160a01b03199182168117909255600083815260056020908152604080832080549094168517909355928152600690925290819020829055517f0a2b6ebf143b3e9fcd67e17748ad315174746100c27228468b2c98c302c62884906136ad9083908590615afc565b60405180910390a15050565b6000610aa06c45786368616e6765526174657360981b612f78565b606080826136e35760006136e6565b60015b60ff1660048054905001604051908082528060200260200182016040528015613719578160200160208202803883390190505b50905060005b60045481101561378057600660006004838154811061373a57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054825183908390811061376d57fe5b602090810291909101015260010161371f565b508215610e0a576004548151620a69cb60eb1b918391811061379e57fe5b60200260200101818152505092915050565b60008060008060006137c4612f1a88613b5e565b91935090915060009050806137de620a69cb60eb1b613fc3565b915091506137f283806134005750816144f4565b600088156139d057613802614808565b905061380c613ce9565b6001600160a01b031663f557f73c8661382d6138278e6141f7565b8761462e565b846040518463ffffffff1660e01b815260040161384c93929190615b18565b60206040518083038186803b15801561386457600080fd5b505afa158015613878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061389c9190810190614f79565b96506139546139466139308373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ec57600080fd5b505af4158015613900573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506139249190810190614f79565b9063ffffffff61486916565b61393a8a8761488e565b9063ffffffff61404816565b61394f8c6148a0565b6148aa565b97506139c06139ba6139a48373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ec57600080fd5b6139ae8b8761462e565b9063ffffffff6148c016565b886148aa565b9650600095506110169350505050565b6139d86148de565b905060006139ef6139e761493e565b613924614993565b90506000613a15613a0f83613a038f6141f7565b9063ffffffff613cc116565b8661462e565b9050613a1f613ce9565b6001600160a01b031663f557f73c8883866040518463ffffffff1660e01b8152600401613a4e93929190615b18565b60206040518083038186803b158015613a6657600080fd5b505afa158015613a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613a9e9190810190614f79565b98506000613af7613aed8573__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ec57600080fd5b61393a8c8961488e565b9050613b028d6141f7565b613b12828563ffffffff61486916565b10613b4157879950613b2783613a038f6141f7565b9a50613b328d6149ed565b98506110169650505050505050565b613b4c8d82856149f7565b909b5098506110169650505050505050565b6000613b686134d3565b6001600160a01b03166370a08231836040518263ffffffff1660e01b8152600401613b9391906159fb565b60206040518083038186803b158015613bab57600080fd5b505afa158015613bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e0a9190810190614f79565b6000806000806000613bf361097f565b92505091508660001415613c0f57600094509092509050613c4d565b600080613c1b88613fc3565b91509150613c3882613c2c8b614a52565b9063ffffffff613cac16565b96508395508080613c465750825b9450505050505b9250925092565b6000613c5e61465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401613115929190615b0a565b60006130b48383670de0b6b3a7640000614678565b600082821115613ce35760405162461bcd60e51b815260040161069690615c3f565b50900390565b6000610aa0692634b8bab4b230ba37b960b11b612f78565b613d09614a70565b6001600160a01b031663270fb338846040518263ffffffff1660e01b8152600401613d3491906159fb565b600060405180830381600087803b158015613d4e57600080fd5b505af1158015613d62573d6000803e3d6000fd5b505050506000613d706134d3565b90506000613d7d85613b5e565b905082841415613db557604051631a378f0d60e01b81526001600160a01b03831690631a378f0d906117df9088908590600401615a3f565b6000613dc085614a8f565b9050826001600160a01b0316631a378f0d87848410613ddf5784613de1565b835b6040518363ffffffff1660e01b8152600401613dfe929190615a3f565b600060405180830381600087803b158015613e1857600080fd5b505af1158015613e2c573d6000803e3d6000fd5b50505050505050505050565b6000806000806000613e486128c9565b6001600160a01b0316633a900a2e6040518163ffffffff1660e01b815260040160806040518083038186803b158015613e8057600080fd5b505afa158015613e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613eb891908101906150b1565b935093505092508180613ec85750805b935085613f6e57600080613eda6128c9565b6001600160a01b0316632992dba26040518163ffffffff1660e01b8152600401604080518083038186803b158015613f1157600080fd5b505afa158015613f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613f49919081019061504f565b9092509050613f5e858363ffffffff61486916565b94508580613f695750805b955050505b631cd554d160e21b871415613f885750909250613fbc9050565b600080613f9489613fc3565b9092509050613fa9858363ffffffff613cac16565b8680613fb25750815b9650965050505050505b9250929050565b600080613fce6136b9565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401613ff99190615aee565b604080518083038186803b15801561401057600080fd5b505afa158015614024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120ac919081019061504f565b6000670de0b6b3a7640000614063848463ffffffff614ac116565b8161406a57fe5b049392505050565b6000600160ff1b82106140975760405162461bcd60e51b815260040161069690615d4f565b5090565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106140dd57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561411c578160200160208202803883390190505b50905060005b835181101561415e5783818151811061413757fe5b602002602001015182828151811061414b57fe5b6020908102919091010152600101614122565b5060005b825181101561208e5782818151811061417757fe5b602002602001015182828651018151811061418e57fe5b6020908102919091010152600101614162565b60008060006141af846141f7565b90506000806141c061103d87613b5e565b925050915082600014156141dc576000945092506120b1915050565b6141ec828463ffffffff613cac16565b945092505050915091565b6000610e0a614204614a70565b6001600160a01b0316628cc262846040518263ffffffff1660e01b815260040161422e91906159fb565b60206040518083038186803b15801561424657600080fd5b505afa15801561425a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061427e9190810190614f79565b61392461428a856149ed565b613924866148a0565b60006142a96142a0613165565b613924846142b2565b42101592915050565b60006142bc61465b565b6001600160a01b03166323257c2b6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b856040516020016142f89291906159aa565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401613b93929190615b0a565b600080614351766578743a41676772656761746f7244656274526174696f60481b612f78565b90506000816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561438e57600080fd5b505afa1580156143a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506143c69190810190615149565b50505091505060006143d66136b9565b6001600160a01b031663045056f8620a69cb60eb1b6040518263ffffffff1660e01b81526004016144079190615aee565b606060405180830381600087803b15801561442157600080fd5b505af1158015614435573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250614459919081019061506e565b50915050614465614afb565b6001600160a01b031663413caeb584846040518363ffffffff1660e01b8152600401614492929190615a3f565b602060405180830381600087803b1580156144ac57600080fd5b505af11580156144c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506144e49190810190614f3d565b806144ec5750805b935050505090565b8015610f595760405162461bcd60e51b815260040161069690615c7f565b61451a614a70565b6001600160a01b031663270fb338836040518263ffffffff1660e01b815260040161454591906159fb565b600060405180830381600087803b15801561455f57600080fd5b505af1158015614573573d6000803e3d6000fd5b5050505060006145816134d3565b9050600061458e83614a8f565b9050806145fa57604051636178258560e11b81526001600160a01b0383169063c2f04b0a906145c39087908790600401615a3f565b600060405180830381600087803b1580156145dd57600080fd5b505af11580156145f1573d6000803e3d6000fd5b50505050614628565b604051636178258560e11b81526001600160a01b0383169063c2f04b0a9061092b9087908590600401615a3f565b50505050565b60006130b4838363ffffffff614b1716565b6000610aa06c29bcb73a342932b232b2b6b2b960991b612f78565b6000610aa06e466c657869626c6553746f7261676560881b612f78565b60008061469e8461469287600a870263ffffffff614ac116565b9063ffffffff614b2c16565b90506005600a825b06106146b057600a015b600a9004949350505050565b6000610aa07044656c6567617465417070726f76616c7360781b612f78565b60006146e561432b565b156146f257506000614800565b8282106146ff5782614701565b815b905061470e858284613d01565b631cd554d160e21b6000526005602052600080516020615f0983398151915254604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061475d9087908590600401615a3f565b600060405180830381600087803b15801561477757600080fd5b505af115801561478b573d6000803e3d6000fd5b505050506147976128c9565b6001600160a01b03166342c7b8196147ae83614072565b6000036040518263ffffffff1660e01b81526004016147cd9190615aee565b600060405180830381600087803b1580156147e757600080fd5b505af11580156147fb573d6000803e3d6000fd5b505050505b949350505050565b600061481261465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7573656c664c69717569646174696f6e50656e616c747960501b6040518363ffffffff1660e01b8152600401613115929190615b0a565b6000828201838110156130b45760405162461bcd60e51b815260040161069690615c0f565b60006130b4838363ffffffff613cac16565b6000613b68612652565b60008183106148b957816130b4565b5090919050565b60006130b48261469285670de0b6b3a764000063ffffffff614ac116565b60006148e861465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b74736e784c69717569646174696f6e50656e616c747960581b6040518363ffffffff1660e01b8152600401613115929190615b0a565b600061494861465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b69199b1859d4995dd85c9960b21b6040518363ffffffff1660e01b8152600401613115929190615b0a565b600061499d61465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1b1a5c5d5a59185d1954995dd85c99608a1b6040518363ffffffff1660e01b8152600401613115929190615b0a565b6000613b68614b61565b6000806000614a05866148a0565b905080614a18868663ffffffff61486916565b11614a2a575083915060009050614a4a565b614a3e81613a03878763ffffffff61486916565b8593509150614a4a9050565b935093915050565b600080614a5d613060565b5090506130b4838263ffffffff614b7d16565b6000610aa0704c697175696461746f725265776172647360781b612f78565b600080614a9a613060565b5090508015614ab857614ab3838263ffffffff61309b16565b6130b4565b50600092915050565b600082614ad057506000610e0a565b82820282848281614add57fe5b04146130b45760405162461bcd60e51b815260040161069690615cdf565b6000610aa06d21b4b931bab4ba213932b0b5b2b960911b612f78565b60006130b48383670de0b6b3a7640000614b92565b6000808211614b4d5760405162461bcd60e51b815260040161069690615c5f565b6000828481614b5857fe5b04949350505050565b6000610aa06d2932bbb0b93222b9b1b937bbab1960911b612f78565b60006130b483836b033b2e3c9fd0803ce80000005b600080600a8304614ba9868663ffffffff614ac116565b81614bb057fe5b0490506005600a826146a6565b815481835581811115610e5e57600083815260209020610e5e918101908301610aa391905b808211156140975760008155600101614be2565b8035610e0a81615ec7565b8051610e0a81615ec7565b60008083601f840112614c1e57600080fd5b50813567ffffffffffffffff811115614c3657600080fd5b602083019150836020820283011115613fbc57600080fd5b600082601f830112614c5f57600080fd5b8151614c72614c6d82615de8565b615dc1565b91508181835260208401935060208101905083856020840282011115614c9757600080fd5b60005b83811015614cc35781614cad8882614cee565b8452506020928301929190910190600101614c9a565b5050505092915050565b8035610e0a81615edb565b8051610e0a81615edb565b8035610e0a81615ee4565b8051610e0a81615ee4565b8035610e0a81615eed565b8051610e0a81615eed565b8035610e0a81615ef6565b8051610e0a81615ef6565b8051610e0a81615eff565b600060208284031215614d4257600080fd5b60006148008484614bf6565b600060208284031215614d6057600080fd5b60006148008484614c01565b60008060408385031215614d7f57600080fd5b6000614d8b8585614bf6565b9250506020614d9c85828601614bf6565b9150509250929050565b600080600060608486031215614dbb57600080fd5b6000614dc78686614bf6565b9350506020614dd886828701614bf6565b9250506040614de986828701614ce3565b9150509250925092565b60008060408385031215614e0657600080fd5b6000614e128585614bf6565b9250506020614d9c85828601614ccd565b60008060408385031215614e3657600080fd5b6000614e428585614bf6565b9250506020614d9c85828601614ce3565b60008060008060808587031215614e6957600080fd5b6000614e758787614bf6565b9450506020614e8687828801614ce3565b9350506040614e9787828801614ce3565b9250506060614ea887828801614ce3565b91505092959194509250565b60008060208385031215614ec757600080fd5b823567ffffffffffffffff811115614ede57600080fd5b614eea85828601614c0c565b92509250509250929050565b60008060408385031215614f0957600080fd5b825167ffffffffffffffff811115614f2057600080fd5b614f2c85828601614c4e565b9250506020614d9c85828601614cd8565b600060208284031215614f4f57600080fd5b60006148008484614cd8565b600060208284031215614f6d57600080fd5b60006148008484614ce3565b600060208284031215614f8b57600080fd5b60006148008484614cee565b600080600060608486031215614fac57600080fd5b6000614dc78686614ce3565b60008060408385031215614fcb57600080fd5b6000614e128585614ce3565b600060208284031215614fe957600080fd5b60006148008484614cf9565b60006020828403121561500757600080fd5b60006148008484614d04565b60006020828403121561502557600080fd5b60006148008484614d0f565b60006020828403121561504357600080fd5b60006148008484614d1a565b6000806040838503121561506257600080fd5b6000614f2c8585614cee565b60008060006060848603121561508357600080fd5b600061508f8686614cee565b93505060206150a086828701614cd8565b9250506040614de986828701614cd8565b600080600080608085870312156150c757600080fd5b60006150d38787614cee565b94505060206150e487828801614cee565b93505060406150f587828801614cd8565b9250506060614ea887828801614cd8565b60008060006060848603121561511b57600080fd5b60006151278686614cee565b935050602061513886828701614cee565b9250506040614de986828701614cee565b600080600080600060a0868803121561516157600080fd5b600061516d8888614d25565b955050602061517e88828901614cee565b945050604061518f88828901614cee565b93505060606151a088828901614cee565b92505060806151b188828901614d25565b9150509295509295909350565b60006151ca8383615335565b505060200190565b60006151ca838361534f565b6151e781615e21565b82525050565b6151e76151f982615e21565b615ea6565b600061520a8385615e13565b93506001600160fb1b0383111561522057600080fd5b602083029250615231838584615e6e565b50500190565b600061524282615e0f565b61524c8185615e13565b935061525783615e09565b8060005b8381101561528557815161526f88826151be565b975061527a83615e09565b92505060010161525b565b509495945050505050565b600061529b82615e0f565b6152a58185615e13565b93506152b083615e09565b8060005b838110156152855781516152c888826151d2565b97506152d383615e09565b9250506001016152b4565b60006152e982615e0f565b6152f38185615e13565b93506152fe83615e09565b8060005b8381101561528557815161531688826151be565b975061532183615e09565b925050600101615302565b6151e781615e2c565b6151e781610aa3565b6151e761534a82610aa3565b610aa3565b6151e781615e31565b6151e781615e63565b600061536c82615e0f565b6153768185615e13565b9350615386818560208601615e7a565b61538f81615eb7565b9093019392505050565b60006153a6601883615e13565b7f6f6e65206d69677261746f72206d757374206265203078300000000000000000815260200192915050565b60006153df603583615e13565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000615436601483615e13565b736f6e6c792074727573746564206d696e7465727360601b815260200192915050565b6000615466601d83615e13565b7f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000815260200192915050565b600061549f601b83615e13565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006154d8601283615e13565b714e6f206465627420746f20666f726769766560701b815260200192915050565b6000615506601083615e13565b6f416d6f756e7420746f6f206c6172676560801b815260200192915050565b6000615532601e83615e13565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b600061556b600e83615e13565b6d09edcd8f240a6f2dce8d0cae8d2f60931b815260200192915050565b6000615595601a83615e13565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b60006155ce601183615e1c565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006155fb601083615e13565b6f135d5cdd08189948199959481c1bdbdb60821b815260200192915050565b6000615627601e83615e13565b7f412073796e7468206f7220534e58207261746520697320696e76616c69640000815260200192915050565b6000615660601383615e13565b721cde5b9d1a08191bd95cdb89dd08195e1a5cdd606a1b815260200192915050565b600061568f601483615e13565b7314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b815260200192915050565b60006156bf601883615e13565b7f4e6f74206f70656e20666f72206c69717569646174696f6e0000000000000000815260200192915050565b60006156f8602f83615e13565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b6000615755601c83615e13565b7f53796e7468206164647265737320616c72656164792065786973747300000000815260200192915050565b600061578e602183615e13565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006157d1601383615e13565b72086c2dcdcdee840e4cadadeecca40e6f2dce8d606b1b815260200192915050565b6000615800601283615e13565b7127b7363c9029bcb73a342932b232b2b6b2b960711b815260200192915050565b600061582e601583615e13565b7463616e6e6f7420697373756520302073796e74687360581b815260200192915050565b600061585f601983615e1c565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000615898601683615e13565b756f6e6c792074727573746564206d69677261746f727360501b815260200192915050565b60006158ca600c83615e13565b6b53796e74682065786973747360a01b815260200192915050565b60006158f2601e83615e13565b7f4d696e696d756d207374616b652074696d65206e6f7420726561636865640000815260200192915050565b600061592b602883615e13565b7f53616665436173743a2076616c756520646f65736e27742066697420696e2061815267371034b73a191a9b60c11b602082015260400192915050565b6000615975601a83615e13565b7f43616e6e6f742072656d6f766520776974686f75742072617465000000000000815260200192915050565b6151e781615e3c565b60006159b6828561533e565b6020820191506159c682846151ed565b5060140192915050565b60006159db826155c1565b91506159e7828461533e565b50602001919050565b60006159db82615852565b60208101610e0a82846151de565b60408101615a1782856151de565b6130b460208301846151de565b60408101615a3282856151de565b6130b4602083018461532c565b60408101615a4d82856151de565b6130b46020830184615335565b60808101615a6882876151de565b615a756020830186615335565b615a826040830185615335565b615a8f6060830184615335565b95945050505050565b60408082528101615aaa8185876151fe565b90508181036020830152615a8f81846152de565b602080825281016130b48184615237565b602080825281016130b48184615290565b60208101610e0a828461532c565b60208101610e0a8284615335565b60408101615a178285615335565b60408101615a4d8285615335565b60608101615b268286615335565b615b336020830185615335565b6148006040830184615335565b60408101615b4e8285615335565b6130b46020830184615358565b60408101615b698285615335565b81810360208301526148008184615361565b60608101615b898285615335565b615b966020830184615335565b6130b46040830161573c565b60208101610e0a828461534f565b60408101615a4d828561534f565b602080825281016130b48184615361565b60208082528101610e0a81615399565b60208082528101610e0a816153d2565b60208082528101610e0a81615429565b60208082528101610e0a81615459565b60208082528101610e0a81615492565b60208082528101610e0a816154cb565b60208082528101610e0a816154f9565b60208082528101610e0a81615525565b60208082528101610e0a8161555e565b60208082528101610e0a81615588565b60208082528101610e0a816155ee565b60208082528101610e0a8161561a565b60208082528101610e0a81615653565b60208082528101610e0a81615682565b60208082528101610e0a816156b2565b60208082528101610e0a816156eb565b60208082528101610e0a81615748565b60208082528101610e0a81615781565b60208082528101610e0a816157c4565b60208082528101610e0a816157f3565b60208082528101610e0a81615821565b60208082528101610e0a8161588b565b60208082528101610e0a816158bd565b60208082528101610e0a816158e5565b60208082528101610e0a8161591e565b60208082528101610e0a81615968565b60208101610e0a82846159a1565b60408101615a328285615335565b60608101615d998286615335565b615da66020830185615335565b614800604083018461532c565b60808101615a688287615335565b60405181810167ffffffffffffffff81118282101715615de057600080fd5b604052919050565b600067ffffffffffffffff821115615dff57600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b919050565b6000610e0a82615e48565b151590565b6000610e0a82615e21565b6001600160801b031690565b6001600160a01b031690565b69ffffffffffffffffffff1690565b6000610e0a82610aa3565b82818337506000910152565b60005b83811015615e95578181015183820152602001615e7d565b838111156146285750506000910152565b6000610e0a826000610e0a82615ec1565b601f01601f191690565b60601b90565b615ed081615e21565b8114610f5957600080fd5b615ed081615e2c565b615ed081610aa3565b615ed081615e31565b615ed081615e3c565b615ed081615e5456fe74c62d09fbc50aefae0794a9a068f786a692826fbdfe63828ec23a875865823fa365627a7a72315820fa7e5ff70c3f6ee753009897da4fddf5c15e30f0b09c76585842af569245d7596c6578706572696d656e74616cf564736f6c63430005100040", "abi": [ { "inputs": [ @@ -38459,10 +38459,10 @@ } ], "source": { - "keccak256": "0x122394906d88b596f09642fb03cdb2d4b798a65cf4280cecbccc0279ba67b3a2", + "keccak256": "0x01c9073479a323531592b4a418de497b073561b5ec28d2471093911debe3397e", "urls": [ - "bzz-raw://989df6d3f973b22ac2c8b4232fd4b6fba610ab16a851fca30d29c9994cf3c005", - "dweb:/ipfs/QmWX6D3UsevETnyMxxtz3Aw3sBfqms7qcpkfpuiHpq2bNx" + "bzz-raw://0484446b828045162a1bf1a8602ba0d041f971eba294b142e8b7428539120491", + "dweb:/ipfs/QmdFSSD2Gi7nX3vfYxK91Ckn4DyRLte6dnDciEWqTQQCmT" ] }, "metadata": { @@ -38484,10 +38484,10 @@ }, "sources": { "Issuer.sol": { - "keccak256": "0x122394906d88b596f09642fb03cdb2d4b798a65cf4280cecbccc0279ba67b3a2", + "keccak256": "0x01c9073479a323531592b4a418de497b073561b5ec28d2471093911debe3397e", "urls": [ - "bzz-raw://989df6d3f973b22ac2c8b4232fd4b6fba610ab16a851fca30d29c9994cf3c005", - "dweb:/ipfs/QmWX6D3UsevETnyMxxtz3Aw3sBfqms7qcpkfpuiHpq2bNx" + "bzz-raw://0484446b828045162a1bf1a8602ba0d041f971eba294b142e8b7428539120491", + "dweb:/ipfs/QmdFSSD2Gi7nX3vfYxK91Ckn4DyRLte6dnDciEWqTQQCmT" ] } }, diff --git a/publish/deployed/mainnet/deployment.json b/publish/deployed/mainnet/deployment.json index db00957d4..3338440de 100644 --- a/publish/deployed/mainnet/deployment.json +++ b/publish/deployed/mainnet/deployment.json @@ -165,7 +165,7 @@ "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F", "0x5b1b5fEa1b99D83aD479dF0C222F0492385381dD", "0xEb3107117FEAd7de89Cd14D463D340A2E6917769", - "328193104088773603337882496", + "339889850088773602815691648", "0x4E3b31eB0E5CB73641EE1E65E7dCEFe520bA3ef2" ] }, @@ -491,8 +491,8 @@ "network": "mainnet", "constructorArgs": [ "0xEb3107117FEAd7de89Cd14D463D340A2E6917769", - "1701907200", - "248" + "1733961600", + "301" ] }, "DelegateApprovals": { @@ -636,11 +636,11 @@ }, "Issuer": { "name": "Issuer", - "address": "0xab4688E54A216aB3813438D30603Bf855648AF8d", + "address": "0x7A1b3DB73E5B8c58EDC8A821890005064f2B83Fd", "source": "Issuer", - "link": "https://etherscan.io/address/0xab4688E54A216aB3813438D30603Bf855648AF8d", - "timestamp": "2024-04-16T18:33:59.000Z", - "txn": "https://etherscan.io/tx/0x69bc1742c7167108145cf642a3e4927f962750c7579d171c24655be1f747a1ce", + "link": "https://etherscan.io/address/0x7A1b3DB73E5B8c58EDC8A821890005064f2B83Fd", + "timestamp": "2025-03-18T19:42:23.000Z", + "txn": "https://etherscan.io/tx/0x8bcf0ab9cdcd41822469ac497305abf4089da4859bd1d4c07998375370055a09", "network": "mainnet", "constructorArgs": [ "0xEb3107117FEAd7de89Cd14D463D340A2E6917769", @@ -19605,7 +19605,7 @@ ] }, "Issuer": { - "bytecode": "60806040523480156200001157600080fd5b50604051620060d7380380620060d78339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b615eb480620002236000396000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c806372c6581611610182578063a311c7c2116100e9578063c81ff8fa116100a2578063d686c06c1161007c578063d686c06c1461061d578063dbf6334014610630578063dd3d2b2e14610638578063fd864ccf1461064b576102bb565b8063c81ff8fa146105e4578063c8977132146105f7578063d37c4d8b1461060a576102bb565b8063a311c7c21461057d578063a5fdc5de14610590578063ae3bbbbb146105a3578063b06e8c65146105b6578063b410a034146105c9578063bff4fdfc146105d1576102bb565b8063835e119c1161013b578063835e119c14610521578063849cf58814610534578063890235d414610547578063899ffef41461055a5780638da5cb5b146105625780639a5154b41461056a576102bb565b806372c65816146104c357806372cb051f146104d657806374185360146104eb57806379ba5097146104f35780637b1001b7146104fb57806380aa6a911461050e576102bb565b806331e6da5a116102265780634e99bda9116101df5780634e99bda91461044757806353a47bb71461044f5780635e887fe914610464578063614d08f8146104875780636bed04151461048f5780637168d2c2146104b0576102bb565b806331e6da5a146103c857806332608039146103db5780633b6afe40146103ee57806344ec6b621461040e57806347a9b6db14610421578063497d704a14610434576102bb565b80631313e6ca116102785780631313e6ca1461035b5780631627540c1461037257806316b2213f14610385578063242df9e1146103985780632af64bd3146103a05780632b3f41aa146103b5576102bb565b8063042e0688146102c057806304f3bcec146102d557806305b3c1c9146102f35780630b887dae146103135780630d969cf5146103265780631137aedf14610339575b600080fd5b6102d36102ce366004614d6c565b61065e565b005b6102dd6106cf565b6040516102ea9190615aeb565b60405180910390f35b610306610301366004614c79565b6106de565b6040516102ea9190615a37565b6102d3610321366004614ea4565b6106f2565b6102d3610334366004614d9c565b6107d0565b61034c610347366004614c79565b610963565b6040516102ea93929190615a61565b61036361097f565b6040516102ea93929190615cd4565b6102d3610380366004614c79565b610a26565b610306610393366004614c79565b610a84565b610306610a96565b6103a8610aa6565b6040516102ea9190615a29565b6102d36103c3366004614cb5565b610bbd565b6102d36103d6366004614f5c565b610c0c565b6102dd6103e9366004614ea4565b610d47565b6104016103fc366004614dfd565b610d62565b6040516102ea9190615a18565b6102d361041c366004614cef565b610e10565b6102d361042f366004614dfd565b610e63565b6102d3610442366004614c79565b610f14565b6103a8610f5c565b610457610fee565b6040516102ea9190615944565b610477610472366004614d3c565b610ffd565b6040516102ea9493929190615cfc565b61030661101f565b6104a261049d366004614d6c565b61102c565b6040516102ea929190615cc6565b6102d36104be366004614dfd565b611098565b61034c6104d1366004614d3c565b6111cd565b6104de61133f565b6040516102ea9190615a07565b6102d361134b565b6102d361149d565b610306610509366004614f01565b611539565b6102d361051c366004614d6c565b611545565b6102dd61052f366004614ea4565b611930565b6102d3610542366004614f20565b611957565b6103a8610555366004614ee0565b6119ca565b6104de611d50565b610457612026565b6102d3610578366004614cef565b612035565b61030661058b366004614c79565b612083565b61030661059e366004614c79565b612095565b6104a26105b1366004614c79565b6120a0565b6102d36105c4366004614d6c565b6120b6565b6103066120fa565b6103a86105df366004614c79565b612104565b6103a86105f2366004614ee0565b61210f565b6102d3610605366004614c79565b6124d5565b610306610618366004614d6c565b61251a565b6102d361062b366004614cef565b61254c565b6103066125f2565b610306610646366004614c79565b6125f8565b6102d3610659366004614cb5565b612603565b610666612652565b6001600160a01b0316336001600160a01b03161461069f5760405162461bcd60e51b815260040161069690615b98565b60405180910390fd5b600081116106bf5760405162461bcd60e51b815260040161069690615c58565b6106cb82826000612669565b5050565b6002546001600160a01b031681565b6000806106ea83612793565b509392505050565b6106fa6127e6565b6000610704612812565b604051636b42ba1d60e11b81529091506001600160a01b0382169063d685743a90610736908590600090600401615a89565b600060405180830381600087803b15801561075057600080fd5b505af1158015610764573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03841692506304bd11e5915061079590600190600401615a29565b600060405180830381600087803b1580156107af57600080fd5b505af11580156107c3573d6000803e3d6000fd5b505050506106cb82612829565b6107d8612cd7565b6107e0612dc1565b6001600160a01b0316631b16802c85856040518363ffffffff1660e01b815260040161080d929190615988565b606060405180830381600087803b15801561082757600080fd5b505af115801561083b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061085f919081019061504f565b50505060008381526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906108a19087908690600401615988565b600060405180830381600087803b1580156108bb57600080fd5b505af11580156108cf573d6000803e3d6000fd5b505050506108dc84612dd8565b631cd554d160e21b6000526005602052600080516020615e528339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b49061092b9087908590600401615988565b600060405180830381600087803b15801561094557600080fd5b505af1158015610959573d6000803e3d6000fd5b5050505050505050565b600080600061097184612e51565b509196909550909350915050565b60008060008060006109b86109b37f6578743a41676772656761746f7249737375656453796e746873000000000000612ec1565b612f1e565b509350509250506000806109ca612fa9565b91509150839650816000146109ee576109e9878363ffffffff612fe416565b6109f1565b60005b955060006109fd613004565b90504281108015610a1a5750838142031180610a1a575081814203115b95505050505050909192565b610a2e6127e6565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610a79908390615944565b60405180910390a150565b60066020526000908152604090205481565b6000610aa06130ae565b90505b90565b60006060610ab2611d50565b905060005b8151811015610bb4576000828281518110610ace57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610b1f908590600401615a37565b60206040518083038186803b158015610b3757600080fd5b505afa158015610b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b6f9190810190614c97565b6001600160a01b0316141580610b9a57506000818152600360205260409020546001600160a01b0316155b15610bab5760009350505050610aa3565b50600101610ab7565b50600191505090565b610bc5612652565b6001600160a01b0316336001600160a01b031614610bf55760405162461bcd60e51b815260040161069690615b98565b610bff8282613109565b6106cb82600060016131aa565b610c1f66119959541bdbdb60ca1b612ec1565b6001600160a01b0316336001600160a01b031614610c4f5760405162461bcd60e51b815260040161069690615bb8565b6000610c5961341c565b9050816001600160801b0316816001600160a01b031663988e65956040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9e57600080fd5b505afa158015610cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cd69190810190614f7a565b6001600160801b031610156106cb5760405163abb6de9560e01b81526001600160a01b0382169063abb6de9590610d11908590600401615cb8565b600060405180830381600087803b158015610d2b57600080fd5b505af1158015610d3f573d6000803e3d6000fd5b505050505050565b6005602052600090815260409020546001600160a01b031681565b60408051828152602080840282010190915260609082908290828015610d92578160200160208202803883390190505b50905060005b82811015610e055760056000878784818110610db057fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b0316828281518110610de557fe5b6001600160a01b0390921660209283029190910190910152600101610d98565b509150505b92915050565b610e18612652565b6001600160a01b0316336001600160a01b031614610e485760405162461bcd60e51b815260040161069690615b98565b610e52838361343c565b610e5e83826000612669565b505050565b610e6b6127e6565b8060005b81811015610ea857610ea0848483818110610e8657fe5b9050602002016020610e9b9190810190614f20565b613471565b600101610e6f565b50610eb1612812565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b8152600401610edd9190615a29565b600060405180830381600087803b158015610ef757600080fd5b505af1158015610f0b573d6000803e3d6000fd5b50505050505050565b610f1c612652565b6001600160a01b0316336001600160a01b031614610f4c5760405162461bcd60e51b815260040161069690615b98565b610f5981600060016131aa565b50565b6000610f66613602565b6001600160a01b031663c8e5bbd5610f7e600161361d565b6040518263ffffffff1660e01b8152600401610f9a9190615a07565b60006040518083038186803b158015610fb257600080fd5b505afa158015610fc6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0a9190810190614e3f565b6001546001600160a01b031681565b60008060008061100d86866136f9565b93509350935093505b92959194509250565b6524b9b9bab2b960d11b81565b600080600061104961103d86613aa7565b620a69cb60eb1b613b2c565b93509091506000905061106a61105d613b9d565b839063ffffffff613bf516565b905084811061107c576000935061108f565b61108c858263ffffffff613c0a16565b93505b50509250929050565b6110a06127e6565b8060006110ab612812565b90506060826040519080825280602002602001820160405280156110d9578160200160208202803883390190505b506040516305ece36d60e21b81529091506001600160a01b038316906317b38db49061110d908890889086906004016159e1565b600060405180830381600087803b15801561112757600080fd5b505af115801561113b573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03851692506304bd11e5915061116c90600190600401615a29565b600060405180830381600087803b15801561118657600080fd5b505af115801561119a573d6000803e3d6000fd5b506000925050505b83811015610d3f576111c58686838181106111b957fe5b90506020020135612829565b6001016111a2565b60008060006111da612652565b6001600160a01b0316336001600160a01b03161461120a5760405162461bcd60e51b815260040161069690615b98565b611212613c32565b6001600160a01b031663952225f386866040518363ffffffff1660e01b815260040161123f92919061596d565b60206040518083038186803b15801561125757600080fd5b505afa15801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061128f9190810190614e86565b6112ab5760405162461bcd60e51b815260040161069690615bf8565b60006112b786866136f9565b929650909450925090506112cc868483613c4a565b84611337576112d9613c32565b6001600160a01b031663974e9e7f876040518263ffffffff1660e01b81526004016113049190615944565b600060405180830381600087803b15801561131e57600080fd5b505af1158015611332573d6000803e3d6000fd5b505050505b509250925092565b6060610aa0600061361d565b6060611355611d50565b905060005b81518110156106cb57600082828151811061137157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016113b39190615939565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016113df929190615aa4565b60206040518083038186803b1580156113f757600080fd5b505afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061142f9190810190614c97565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061148b9084908490615a45565b60405180910390a1505060010161135a565b6001546001600160a01b031633146114c75760405162461bcd60e51b815260040161069690615b28565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261150a926001600160a01b0391821692911690615952565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006106ea8383613d81565b6002546040516321f8a72160e01b81526000916001600160a01b0316906321f8a7219061158f9075446562744d69677261746f724f6e457468657265756d60501b90600401615a37565b60206040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115df9190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061162e9075446562744d69677261746f724f6e4f7074696d69736d60501b90600401615a37565b60206040518083038186803b15801561164657600080fd5b505afa15801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061167e9190810190614c97565b9050336001600160a01b038316148061169f5750336001600160a01b038216145b6116bb5760405162461bcd60e51b815260040161069690615c68565b6001600160a01b03821615806116d857506001600160a01b038116155b6116f45760405162461bcd60e51b815260040161069690615b18565b60006116fe61341c565b6002546040516321f8a72160e01b81529192506001600160a01b0316906321f8a721906117489075446562744d69677261746f724f6e457468657265756d60501b90600401615a37565b60206040518083038186803b15801561176057600080fd5b505afa158015611774573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117989190810190614c97565b6001600160a01b0316336001600160a01b0316141561181657604051631a378f0d60e01b81526001600160a01b03821690631a378f0d906117df9088908890600401615988565b600060405180830381600087803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50505050611929565b6002546040516321f8a72160e01b81526001600160a01b03909116906321f8a7219061185f9075446562744d69677261746f724f6e4f7074696d69736d60501b90600401615a37565b60206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118af9190810190614c97565b6001600160a01b0316336001600160a01b0316141561192957604051636178258560e11b81526001600160a01b0382169063c2f04b0a906118f69088908890600401615988565b600060405180830381600087803b15801561191057600080fd5b505af1158015611924573d6000803e3d6000fd5b505050505b5050505050565b6004818154811061193d57fe5b6000918252602090912001546001600160a01b0316905081565b61195f6127e6565b61196881613471565b611970612812565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b815260040161199c9190615a29565b600060405180830381600087803b1580156119b657600080fd5b505af1158015611929573d6000803e3d6000fd5b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190611a1b907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615a37565b60206040518083038186803b158015611a3357600080fd5b505afa158015611a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a6b9190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611ab9907453796e746865746978427269646765546f4261736560581b90600401615a37565b60206040518083038186803b158015611ad157600080fd5b505afa158015611ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b099190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611b499066119959541bdbdb60ca1b90600401615a37565b60206040518083038186803b158015611b6157600080fd5b505afa158015611b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b999190810190614c97565b9050336001600160a01b0384161480611bba5750336001600160a01b038316145b80611bcd5750336001600160a01b038216145b611be95760405162461bcd60e51b815260040161069690615b38565b6000878152600560205260409020546001600160a01b0316611c1d5760405162461bcd60e51b815260040161069690615bd8565b60008511611c3d5760405162461bcd60e51b815260040161069690615c58565b611c4686612dd8565b6000878152600560205260409081902054905163219e412d60e21b81526001600160a01b039091169063867904b490611c859089908990600401615988565b600060405180830381600087803b158015611c9f57600080fd5b505af1158015611cb3573d6000803e3d6000fd5b50505050600080611cc389613f0c565b91509150611ccf612812565b6001600160a01b03166342c7b819611cf5611cf08a8663ffffffff613f9116565b613fbb565b6040518263ffffffff1660e01b8152600401611d119190615a37565b600060405180830381600087803b158015611d2b57600080fd5b505af1158015611d3f573d6000803e3d6000fd5b50929b9a5050505050505050505050565b606080611d5b613fe4565b60408051600f808252610200820190925291925060609190602082016101e080388339019050509050680a6f2dce8d0cae8d2f60bb1b81600081518110611d9e57fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110611dc457fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110611dee57fe5b6020026020010181815250506d21b4b931bab4ba213932b0b5b2b960911b81600381518110611e1957fe5b6020026020010181815250507153796e74686574697844656274536861726560701b81600481518110611e4857fe5b60200260200101818152505066119959541bdbdb60ca1b81600581518110611e6c57fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b81600681518110611e9a57fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b81600781518110611ec557fe5b602002602001018181525050692634b8bab4b230ba37b960b11b81600881518110611eec57fe5b602002602001018181525050704c697175696461746f725265776172647360781b81600981518110611f1a57fe5b6020026020010181815250506844656274436163686560b81b81600a81518110611f4057fe5b6020026020010181815250506c29bcb73a342932b232b2b6b2b960991b81600b81518110611f6a57fe5b60200260200101818152505073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b81600c81518110611f9b57fe5b6020026020010181815250507f6578743a41676772656761746f7249737375656453796e74687300000000000081600d81518110611fd557fe5b602002602001018181525050766578743a41676772656761746f7244656274526174696f60481b81600e8151811061200957fe5b60200260200101818152505061201f8282614035565b9250505090565b6000546001600160a01b031681565b61203d612652565b6001600160a01b0316336001600160a01b03161461206d5760405162461bcd60e51b815260040161069690615b98565b6120778383613109565b610e5e838260006131aa565b600061208e826140ea565b5092915050565b6000610e0a82614140565b6000806120ac836140ea565b915091505b915091565b6120be612652565b6001600160a01b0316336001600160a01b0316146120ee5760405162461bcd60e51b815260040161069690615b98565b6106cb828260006131aa565b6000610aa0613b9d565b6000610e0a826141dc565b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190612160907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615a37565b60206040518083038186803b15801561217857600080fd5b505afa15801561218c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121b09190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a721906121fe907453796e746865746978427269646765546f4261736560581b90600401615a37565b60206040518083038186803b15801561221657600080fd5b505afa15801561222a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061224e9190810190614c97565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061228e9066119959541bdbdb60ca1b90600401615a37565b60206040518083038186803b1580156122a657600080fd5b505afa1580156122ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122de9190810190614c97565b9050336001600160a01b03841614806122ff5750336001600160a01b038316145b806123125750336001600160a01b038216145b61232e5760405162461bcd60e51b815260040161069690615b38565b6000878152600560205260409020546001600160a01b03166123625760405162461bcd60e51b815260040161069690615bd8565b600085116123825760405162461bcd60e51b815260040161069690615c58565b61238a612dc1565b6001600160a01b0316631b16802c87896040518363ffffffff1660e01b81526004016123b7929190615988565b606060405180830381600087803b1580156123d157600080fd5b505af11580156123e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612409919081019061504f565b50505060008781526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061244b9089908990600401615988565b600060405180830381600087803b15801561246557600080fd5b505af1158015612479573d6000803e3d6000fd5b5050505060008061248989613f0c565b91509150612495612812565b6001600160a01b03166342c7b8196124b6611cf08a8663ffffffff613f9116565b6000036040518263ffffffff1660e01b8152600401611d119190615a37565b6124dd612652565b6001600160a01b0316336001600160a01b03161461250d5760405162461bcd60e51b815260040161069690615b98565b610f598160006001612669565b60008061252684613aa7565b905080612537576000915050610e0a565b6125418184613b2c565b509095945050505050565b612554612cd7565b826001600160a01b031663d4b839926040518163ffffffff1660e01b815260040160206040518083038186803b15801561258d57600080fd5b505afa1580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125c59190810190614c97565b6001600160a01b0316639dc29fac83836040518363ffffffff1660e01b8152600401610edd929190615988565b60045490565b6000610e0a826141fb565b61260b612652565b6001600160a01b0316336001600160a01b03161461263b5760405162461bcd60e51b815260040161069690615b98565b612645828261343c565b6106cb8260006001612669565b6000610aa0680a6f2dce8d0cae8d2f60bb1b612ec1565b612671614274565b1561267b57610e5e565b60008061268785612e51565b9350505091506126968161443d565b826126c057818411156126bb5760405162461bcd60e51b815260040161069690615b78565b6126c4565b8193505b6126ce858561445b565b6126d785612dd8565b631cd554d160e21b6000526005602052600080516020615e528339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b4906127269088908890600401615988565b600060405180830381600087803b15801561274057600080fd5b505af1158015612754573d6000803e3d6000fd5b50505050612760612812565b6001600160a01b03166342c7b81961277786613fbb565b6040518263ffffffff1660e01b81526004016118f69190615a37565b6000806000806127a8620a69cb60eb1b613f0c565b9150915060006127c06127ba87614140565b84614577565b90506127da6127cd613b9d565b829063ffffffff613f9116565b94509092505050915091565b6000546001600160a01b031633146128105760405162461bcd60e51b815260040161069690615c08565b565b6000610aa06844656274436163686560b81b612ec1565b6000818152600560205260409020546001600160a01b03168061285e5760405162461bcd60e51b815260040161069690615be8565b631cd554d160e21b8214156128855760405162461bcd60e51b815260040161069690615c38565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128c057600080fd5b505afa1580156128d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128f89190810190614ec2565b90508015612b7a5760008061290b613602565b6001600160a01b0316638295016a86856040518363ffffffff1660e01b8152600401612938929190615ac4565b60606040518083038186803b15801561295057600080fd5b505afa158015612964573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612988919081019061504f565b5091509150600081116129ad5760405162461bcd60e51b815260040161069690615ca8565b60006129b7614589565b631cd554d160e21b6000526005602052600080516020615e528339815191525460405163219e412d60e21b81529192506001600160a01b03169063867904b490612a079084908790600401615988565b600060405180830381600087803b158015612a2157600080fd5b505af1158015612a35573d6000803e3d6000fd5b50505050612a41612812565b6001600160a01b03166342c7b819612a5885613fbb565b6040518263ffffffff1660e01b8152600401612a749190615a37565b600060405180830381600087803b158015612a8e57600080fd5b505af1158015612aa2573d6000803e3d6000fd5b50505050806001600160a01b0316633a70599c866001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b158015612aee57600080fd5b505afa158015612b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b269190810190614f3e565b846040518363ffffffff1660e01b8152600401612b44929190615af9565b600060405180830381600087803b158015612b5e57600080fd5b505af1158015612b72573d6000803e3d6000fd5b505050505050505b60005b600454811015612c6157826001600160a01b031660048281548110612b9e57fe5b6000918252602090912001546001600160a01b03161415612c595760048181548110612bc657fe5b600091825260209091200180546001600160a01b0319169055600480546000198101908110612bf157fe5b600091825260209091200154600480546001600160a01b039092169183908110612c1757fe5b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790556004805490612c53906000198301614b06565b50612c61565b600101612b7d565b506001600160a01b038216600090815260066020908152604080832083905585835260059091529081902080546001600160a01b0319169055517f6166f5c475cc1cd535c6cdf14a6d5edb811e34117031fc2863392a136eb655d090612cca9085908590615a45565b60405180910390a1505050565b612cdf614589565b6001600160a01b0316336001600160a01b03161480612da557506002546040516321f8a72160e01b81526001600160a01b03909116906321f8a72190612d409073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b90600401615a37565b60206040518083038186803b158015612d5857600080fd5b505afa158015612d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d909190810190614c97565b6001600160a01b0316336001600160a01b0316145b6128105760405162461bcd60e51b815260040161069690615c48565b6000610aa06822bc31b430b733b2b960b91b612ec1565b612de06145a4565b6001600160a01b0316631d5b277f6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b84604051602001612e1c9291906158f3565b60405160208183030381529060405280519060200120426040518463ffffffff1660e01b815260040161199c93929190615a61565b600080600080612e70612e6386613aa7565b631cd554d160e21b613b2c565b91945092509050600080612e8387612793565b915091508195508280612e935750805b9250858510612ea55760009550612eb8565b612eb5868663ffffffff613c0a16565b95505b50509193509193565b60008181526003602090815260408083205490516001600160a01b039091169182151591612ef191869101615919565b6040516020818303038152906040529061208e5760405162461bcd60e51b81526004016106969190615b07565b6000806000806000856001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015612f5f57600080fd5b505afa158015612f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f979190810190615092565b939a9299509097509550909350915050565b600080600080612fd56109b3766578743a41676772656761746f7244656274526174696f60481b612ec1565b50919650909450505050509091565b6000612ffd83836b033b2e3c9fd0803ce80000006145c1565b9392505050565b600061300e6145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b815260040161305e929190615a53565b60206040518083038186803b15801561307657600080fd5b505afa15801561308a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aa09190810190614ec2565b60006130b86145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b815260040161305e929190615a53565b613111614605565b6001600160a01b0316637d3f0ba283836040518363ffffffff1660e01b815260040161313e929190615952565b60206040518083038186803b15801561315657600080fd5b505afa15801561316a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061318e9190810190614e86565b6106cb5760405162461bcd60e51b815260040161069690615b48565b6131b2614274565b156131bc57610e5e565b80613319576131ca836141dc565b6131e65760405162461bcd60e51b815260040161069690615c88565b6000806131f1612dc1565b6001600160a01b0316631b16802c86631cd554d160e21b6040518363ffffffff1660e01b8152600401613225929190615988565b606060405180830381600087803b15801561323f57600080fd5b505af1158015613253573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613277919081019061504f565b90935091505080156133165761328b612dc1565b6001600160a01b0316634c268fc886631cd554d160e21b87866040518563ffffffff1660e01b81526004016132c394939291906159a3565b60206040518083038186803b1580156132db57600080fd5b505afa1580156132ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133139190810190614ec2565b93505b50505b600080613328612e6386613aa7565b925050915060008061333987612793565b9150915061334e83806133495750815b61443d565b6000841161336e5760405162461bcd60e51b815260040161069690615b68565b841561338757613384848363ffffffff613c0a16565b95505b600061339588898988614624565b9050826133a8868363ffffffff613c0a16565b11610959576133b5613c32565b6001600160a01b031663974e9e7f896040518263ffffffff1660e01b81526004016133e09190615944565b600060405180830381600087803b1580156133fa57600080fd5b505af115801561340e573d6000803e3d6000fd5b505050505050505050505050565b6000610aa07153796e74686574697844656274536861726560701b612ec1565b613444614605565b6001600160a01b0316630487261783836040518363ffffffff1660e01b815260040161313e929190615952565b6000816001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b1580156134ac57600080fd5b505afa1580156134c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506134e49190810190614ec2565b6000818152600560205260409020549091506001600160a01b03161561351c5760405162461bcd60e51b815260040161069690615c78565b6001600160a01b038216600090815260066020526040902054156135525760405162461bcd60e51b815260040161069690615c18565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0384166001600160a01b03199182168117909255600083815260056020908152604080832080549094168517909355928152600690925290819020829055517f0a2b6ebf143b3e9fcd67e17748ad315174746100c27228468b2c98c302c62884906135f69083908590615a45565b60405180910390a15050565b6000610aa06c45786368616e6765526174657360981b612ec1565b6060808261362c57600061362f565b60015b60ff1660048054905001604051908082528060200260200182016040528015613662578160200160208202803883390190505b50905060005b6004548110156136c957600660006004838154811061368357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205482518390839081106136b657fe5b6020908102919091010152600101613668565b508215610e0a576004548151620a69cb60eb1b91839181106136e757fe5b60200260200101818152505092915050565b600080600080600061370d612e6388613aa7565b9193509091506000905080613727620a69cb60eb1b613f0c565b9150915061373b838061334957508161443d565b600088156139195761374b614751565b9050613755613c32565b6001600160a01b031663f557f73c866137766137708e614140565b87614577565b846040518463ffffffff1660e01b815260040161379593929190615a61565b60206040518083038186803b1580156137ad57600080fd5b505afa1580156137c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506137e59190810190614ec2565b965061389d61388f6138798373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561383557600080fd5b505af4158015613849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061386d9190810190614ec2565b9063ffffffff6147b216565b6138838a876147d7565b9063ffffffff613f9116565b6138988c6147e9565b6147f3565b97506139096139036138ed8373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561383557600080fd5b6138f78b87614577565b9063ffffffff61480916565b886147f3565b9650600095506110169350505050565b613921614827565b90506000613938613930614887565b61386d6148dc565b9050600061395e6139588361394c8f614140565b9063ffffffff613c0a16565b86614577565b9050613968613c32565b6001600160a01b031663f557f73c8883866040518463ffffffff1660e01b815260040161399793929190615a61565b60206040518083038186803b1580156139af57600080fd5b505afa1580156139c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506139e79190810190614ec2565b98506000613a40613a368573__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561383557600080fd5b6138838c896147d7565b9050613a4b8d614140565b613a5b828563ffffffff6147b216565b10613a8a57879950613a708361394c8f614140565b9a50613a7b8d614936565b98506110169650505050505050565b613a958d8285614940565b909b5098506110169650505050505050565b6000613ab161341c565b6001600160a01b03166370a08231836040518263ffffffff1660e01b8152600401613adc9190615944565b60206040518083038186803b158015613af457600080fd5b505afa158015613b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e0a9190810190614ec2565b6000806000806000613b3c61097f565b92505091508660001415613b5857600094509092509050613b96565b600080613b6488613f0c565b91509150613b8182613b758b61499b565b9063ffffffff613bf516565b96508395508080613b8f5750825b9450505050505b9250925092565b6000613ba76145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b815260040161305e929190615a53565b6000612ffd8383670de0b6b3a76400006145c1565b600082821115613c2c5760405162461bcd60e51b815260040161069690615b88565b50900390565b6000610aa0692634b8bab4b230ba37b960b11b612ec1565b613c526149b9565b6001600160a01b031663270fb338846040518263ffffffff1660e01b8152600401613c7d9190615944565b600060405180830381600087803b158015613c9757600080fd5b505af1158015613cab573d6000803e3d6000fd5b505050506000613cb961341c565b90506000613cc685613aa7565b905082841415613cfe57604051631a378f0d60e01b81526001600160a01b03831690631a378f0d906117df9088908590600401615988565b6000613d09856149d8565b9050826001600160a01b0316631a378f0d87848410613d285784613d2a565b835b6040518363ffffffff1660e01b8152600401613d47929190615988565b600060405180830381600087803b158015613d6157600080fd5b505af1158015613d75573d6000803e3d6000fd5b50505050505050505050565b6000806000806000613d91612812565b6001600160a01b0316633a900a2e6040518163ffffffff1660e01b815260040160806040518083038186803b158015613dc957600080fd5b505afa158015613ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613e019190810190614ffa565b935093505092508180613e115750805b935085613eb757600080613e23612812565b6001600160a01b0316632992dba26040518163ffffffff1660e01b8152600401604080518083038186803b158015613e5a57600080fd5b505afa158015613e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613e929190810190614f98565b9092509050613ea7858363ffffffff6147b216565b94508580613eb25750805b955050505b631cd554d160e21b871415613ed15750909250613f059050565b600080613edd89613f0c565b9092509050613ef2858363ffffffff613bf516565b8680613efb5750815b9650965050505050505b9250929050565b600080613f17613602565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401613f429190615a37565b604080518083038186803b158015613f5957600080fd5b505afa158015613f6d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120ac9190810190614f98565b6000670de0b6b3a7640000613fac848463ffffffff614a0a16565b81613fb357fe5b049392505050565b6000600160ff1b8210613fe05760405162461bcd60e51b815260040161069690615c98565b5090565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061402657fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015614065578160200160208202803883390190505b50905060005b83518110156140a75783818151811061408057fe5b602002602001015182828151811061409457fe5b602090810291909101015260010161406b565b5060005b825181101561208e578281815181106140c057fe5b60200260200101518282865101815181106140d757fe5b60209081029190910101526001016140ab565b60008060006140f884614140565b905060008061410961103d87613aa7565b92505091508260001415614125576000945092506120b1915050565b614135828463ffffffff613bf516565b945092505050915091565b6000610e0a61414d6149b9565b6001600160a01b0316628cc262846040518263ffffffff1660e01b81526004016141779190615944565b60206040518083038186803b15801561418f57600080fd5b505afa1580156141a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506141c79190810190614ec2565b61386d6141d385614936565b61386d866147e9565b60006141f26141e96130ae565b61386d846141fb565b42101592915050565b60006142056145a4565b6001600160a01b03166323257c2b6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b856040516020016142419291906158f3565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401613adc929190615a53565b60008061429a766578743a41676772656761746f7244656274526174696f60481b612ec1565b90506000816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156142d757600080fd5b505afa1580156142eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061430f9190810190615092565b505050915050600061431f613602565b6001600160a01b031663045056f8620a69cb60eb1b6040518263ffffffff1660e01b81526004016143509190615a37565b606060405180830381600087803b15801561436a57600080fd5b505af115801561437e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506143a29190810190614fb7565b509150506143ae614a44565b6001600160a01b031663413caeb584846040518363ffffffff1660e01b81526004016143db929190615988565b602060405180830381600087803b1580156143f557600080fd5b505af1158015614409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061442d9190810190614e86565b806144355750805b935050505090565b8015610f595760405162461bcd60e51b815260040161069690615bc8565b6144636149b9565b6001600160a01b031663270fb338836040518263ffffffff1660e01b815260040161448e9190615944565b600060405180830381600087803b1580156144a857600080fd5b505af11580156144bc573d6000803e3d6000fd5b5050505060006144ca61341c565b905060006144d7836149d8565b90508061454357604051636178258560e11b81526001600160a01b0383169063c2f04b0a9061450c9087908790600401615988565b600060405180830381600087803b15801561452657600080fd5b505af115801561453a573d6000803e3d6000fd5b50505050614571565b604051636178258560e11b81526001600160a01b0383169063c2f04b0a9061092b9087908590600401615988565b50505050565b6000612ffd838363ffffffff614a6016565b6000610aa06c29bcb73a342932b232b2b6b2b960991b612ec1565b6000610aa06e466c657869626c6553746f7261676560881b612ec1565b6000806145e7846145db87600a870263ffffffff614a0a16565b9063ffffffff614a7516565b90506005600a825b06106145f957600a015b600a9004949350505050565b6000610aa07044656c6567617465417070726f76616c7360781b612ec1565b600061462e614274565b1561463b57506000614749565b828210614648578261464a565b815b9050614657858284613c4a565b631cd554d160e21b6000526005602052600080516020615e5283398151915254604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906146a69087908590600401615988565b600060405180830381600087803b1580156146c057600080fd5b505af11580156146d4573d6000803e3d6000fd5b505050506146e0612812565b6001600160a01b03166342c7b8196146f783613fbb565b6000036040518263ffffffff1660e01b81526004016147169190615a37565b600060405180830381600087803b15801561473057600080fd5b505af1158015614744573d6000803e3d6000fd5b505050505b949350505050565b600061475b6145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7573656c664c69717569646174696f6e50656e616c747960501b6040518363ffffffff1660e01b815260040161305e929190615a53565b600082820183811015612ffd5760405162461bcd60e51b815260040161069690615b58565b6000612ffd838363ffffffff613bf516565b6000613ab1612652565b60008183106148025781612ffd565b5090919050565b6000612ffd826145db85670de0b6b3a764000063ffffffff614a0a16565b60006148316145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b74736e784c69717569646174696f6e50656e616c747960581b6040518363ffffffff1660e01b815260040161305e929190615a53565b60006148916145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b69199b1859d4995dd85c9960b21b6040518363ffffffff1660e01b815260040161305e929190615a53565b60006148e66145a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1b1a5c5d5a59185d1954995dd85c99608a1b6040518363ffffffff1660e01b815260040161305e929190615a53565b6000613ab1614aaa565b600080600061494e866147e9565b905080614961868663ffffffff6147b216565b11614973575083915060009050614993565b6149878161394c878763ffffffff6147b216565b85935091506149939050565b935093915050565b6000806149a6612fa9565b509050612ffd838263ffffffff614ac616565b6000610aa0704c697175696461746f725265776172647360781b612ec1565b6000806149e3612fa9565b5090508015614a01576149fc838263ffffffff612fe416565b612ffd565b50600092915050565b600082614a1957506000610e0a565b82820282848281614a2657fe5b0414612ffd5760405162461bcd60e51b815260040161069690615c28565b6000610aa06d21b4b931bab4ba213932b0b5b2b960911b612ec1565b6000612ffd8383670de0b6b3a7640000614adb565b6000808211614a965760405162461bcd60e51b815260040161069690615ba8565b6000828481614aa157fe5b04949350505050565b6000610aa06d2932bbb0b93222b9b1b937bbab1960911b612ec1565b6000612ffd83836b033b2e3c9fd0803ce80000005b600080600a8304614af2868663ffffffff614a0a16565b81614af957fe5b0490506005600a826145ef565b815481835581811115610e5e57600083815260209020610e5e918101908301610aa391905b80821115613fe05760008155600101614b2b565b8035610e0a81615e10565b8051610e0a81615e10565b60008083601f840112614b6757600080fd5b50813567ffffffffffffffff811115614b7f57600080fd5b602083019150836020820283011115613f0557600080fd5b600082601f830112614ba857600080fd5b8151614bbb614bb682615d31565b615d0a565b91508181835260208401935060208101905083856020840282011115614be057600080fd5b60005b83811015614c0c5781614bf68882614c37565b8452506020928301929190910190600101614be3565b5050505092915050565b8035610e0a81615e24565b8051610e0a81615e24565b8035610e0a81615e2d565b8051610e0a81615e2d565b8035610e0a81615e36565b8051610e0a81615e36565b8035610e0a81615e3f565b8051610e0a81615e3f565b8051610e0a81615e48565b600060208284031215614c8b57600080fd5b60006147498484614b3f565b600060208284031215614ca957600080fd5b60006147498484614b4a565b60008060408385031215614cc857600080fd5b6000614cd48585614b3f565b9250506020614ce585828601614b3f565b9150509250929050565b600080600060608486031215614d0457600080fd5b6000614d108686614b3f565b9350506020614d2186828701614b3f565b9250506040614d3286828701614c2c565b9150509250925092565b60008060408385031215614d4f57600080fd5b6000614d5b8585614b3f565b9250506020614ce585828601614c16565b60008060408385031215614d7f57600080fd5b6000614d8b8585614b3f565b9250506020614ce585828601614c2c565b60008060008060808587031215614db257600080fd5b6000614dbe8787614b3f565b9450506020614dcf87828801614c2c565b9350506040614de087828801614c2c565b9250506060614df187828801614c2c565b91505092959194509250565b60008060208385031215614e1057600080fd5b823567ffffffffffffffff811115614e2757600080fd5b614e3385828601614b55565b92509250509250929050565b60008060408385031215614e5257600080fd5b825167ffffffffffffffff811115614e6957600080fd5b614e7585828601614b97565b9250506020614ce585828601614c21565b600060208284031215614e9857600080fd5b60006147498484614c21565b600060208284031215614eb657600080fd5b60006147498484614c2c565b600060208284031215614ed457600080fd5b60006147498484614c37565b600080600060608486031215614ef557600080fd5b6000614d108686614c2c565b60008060408385031215614f1457600080fd5b6000614d5b8585614c2c565b600060208284031215614f3257600080fd5b60006147498484614c42565b600060208284031215614f5057600080fd5b60006147498484614c4d565b600060208284031215614f6e57600080fd5b60006147498484614c58565b600060208284031215614f8c57600080fd5b60006147498484614c63565b60008060408385031215614fab57600080fd5b6000614e758585614c37565b600080600060608486031215614fcc57600080fd5b6000614fd88686614c37565b9350506020614fe986828701614c21565b9250506040614d3286828701614c21565b6000806000806080858703121561501057600080fd5b600061501c8787614c37565b945050602061502d87828801614c37565b935050604061503e87828801614c21565b9250506060614df187828801614c21565b60008060006060848603121561506457600080fd5b60006150708686614c37565b935050602061508186828701614c37565b9250506040614d3286828701614c37565b600080600080600060a086880312156150aa57600080fd5b60006150b68888614c6e565b95505060206150c788828901614c37565b94505060406150d888828901614c37565b93505060606150e988828901614c37565b92505060806150fa88828901614c6e565b9150509295509295909350565b6000615113838361527e565b505060200190565b60006151138383615298565b61513081615d6a565b82525050565b61513061514282615d6a565b615def565b60006151538385615d5c565b93506001600160fb1b0383111561516957600080fd5b60208302925061517a838584615db7565b50500190565b600061518b82615d58565b6151958185615d5c565b93506151a083615d52565b8060005b838110156151ce5781516151b88882615107565b97506151c383615d52565b9250506001016151a4565b509495945050505050565b60006151e482615d58565b6151ee8185615d5c565b93506151f983615d52565b8060005b838110156151ce578151615211888261511b565b975061521c83615d52565b9250506001016151fd565b600061523282615d58565b61523c8185615d5c565b935061524783615d52565b8060005b838110156151ce57815161525f8882615107565b975061526a83615d52565b92505060010161524b565b61513081615d75565b61513081610aa3565b61513061529382610aa3565b610aa3565b61513081615d7a565b61513081615dac565b60006152b582615d58565b6152bf8185615d5c565b93506152cf818560208601615dc3565b6152d881615e00565b9093019392505050565b60006152ef601883615d5c565b7f6f6e65206d69677261746f72206d757374206265203078300000000000000000815260200192915050565b6000615328603583615d5c565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600061537f601483615d5c565b736f6e6c792074727573746564206d696e7465727360601b815260200192915050565b60006153af601d83615d5c565b7f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000815260200192915050565b60006153e8601b83615d5c565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000615421601283615d5c565b714e6f206465627420746f20666f726769766560701b815260200192915050565b600061544f601083615d5c565b6f416d6f756e7420746f6f206c6172676560801b815260200192915050565b600061547b601e83615d5c565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006154b4600e83615d5c565b6d09edcd8f240a6f2dce8d0cae8d2f60931b815260200192915050565b60006154de601a83615d5c565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000615517601183615d65565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000615544601083615d5c565b6f135d5cdd08189948199959481c1bdbdb60821b815260200192915050565b6000615570601e83615d5c565b7f412073796e7468206f7220534e58207261746520697320696e76616c69640000815260200192915050565b60006155a9601383615d5c565b721cde5b9d1a08191bd95cdb89dd08195e1a5cdd606a1b815260200192915050565b60006155d8601483615d5c565b7314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b815260200192915050565b6000615608601883615d5c565b7f4e6f74206f70656e20666f72206c69717569646174696f6e0000000000000000815260200192915050565b6000615641602f83615d5c565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b600061569e601c83615d5c565b7f53796e7468206164647265737320616c72656164792065786973747300000000815260200192915050565b60006156d7602183615d5c565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b600061571a601383615d5c565b72086c2dcdcdee840e4cadadeecca40e6f2dce8d606b1b815260200192915050565b6000615749601283615d5c565b7127b7363c9029bcb73a342932b232b2b6b2b960711b815260200192915050565b6000615777601583615d5c565b7463616e6e6f7420697373756520302073796e74687360581b815260200192915050565b60006157a8601983615d65565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006157e1601683615d5c565b756f6e6c792074727573746564206d69677261746f727360501b815260200192915050565b6000615813600c83615d5c565b6b53796e74682065786973747360a01b815260200192915050565b600061583b601e83615d5c565b7f4d696e696d756d207374616b652074696d65206e6f7420726561636865640000815260200192915050565b6000615874602883615d5c565b7f53616665436173743a2076616c756520646f65736e27742066697420696e2061815267371034b73a191a9b60c11b602082015260400192915050565b60006158be601a83615d5c565b7f43616e6e6f742072656d6f766520776974686f75742072617465000000000000815260200192915050565b61513081615d85565b60006158ff8285615287565b60208201915061590f8284615136565b5060140192915050565b60006159248261550a565b91506159308284615287565b50602001919050565b60006159248261579b565b60208101610e0a8284615127565b604081016159608285615127565b612ffd6020830184615127565b6040810161597b8285615127565b612ffd6020830184615275565b604081016159968285615127565b612ffd602083018461527e565b608081016159b18287615127565b6159be602083018661527e565b6159cb604083018561527e565b6159d8606083018461527e565b95945050505050565b604080825281016159f3818587615147565b905081810360208301526159d88184615227565b60208082528101612ffd8184615180565b60208082528101612ffd81846151d9565b60208101610e0a8284615275565b60208101610e0a828461527e565b60408101615960828561527e565b60408101615996828561527e565b60608101615a6f828661527e565b615a7c602083018561527e565b614749604083018461527e565b60408101615a97828561527e565b612ffd60208301846152a1565b60408101615ab2828561527e565b818103602083015261474981846152aa565b60608101615ad2828561527e565b615adf602083018461527e565b612ffd60408301615685565b60208101610e0a8284615298565b604081016159968285615298565b60208082528101612ffd81846152aa565b60208082528101610e0a816152e2565b60208082528101610e0a8161531b565b60208082528101610e0a81615372565b60208082528101610e0a816153a2565b60208082528101610e0a816153db565b60208082528101610e0a81615414565b60208082528101610e0a81615442565b60208082528101610e0a8161546e565b60208082528101610e0a816154a7565b60208082528101610e0a816154d1565b60208082528101610e0a81615537565b60208082528101610e0a81615563565b60208082528101610e0a8161559c565b60208082528101610e0a816155cb565b60208082528101610e0a816155fb565b60208082528101610e0a81615634565b60208082528101610e0a81615691565b60208082528101610e0a816156ca565b60208082528101610e0a8161570d565b60208082528101610e0a8161573c565b60208082528101610e0a8161576a565b60208082528101610e0a816157d4565b60208082528101610e0a81615806565b60208082528101610e0a8161582e565b60208082528101610e0a81615867565b60208082528101610e0a816158b1565b60208101610e0a82846158ea565b6040810161597b828561527e565b60608101615ce2828661527e565b615cef602083018561527e565b6147496040830184615275565b608081016159b1828761527e565b60405181810167ffffffffffffffff81118282101715615d2957600080fd5b604052919050565b600067ffffffffffffffff821115615d4857600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b919050565b6000610e0a82615d91565b151590565b6000610e0a82615d6a565b6001600160801b031690565b6001600160a01b031690565b69ffffffffffffffffffff1690565b6000610e0a82610aa3565b82818337506000910152565b60005b83811015615dde578181015183820152602001615dc6565b838111156145715750506000910152565b6000610e0a826000610e0a82615e0a565b601f01601f191690565b60601b90565b615e1981615d6a565b8114610f5957600080fd5b615e1981615d75565b615e1981610aa3565b615e1981615d7a565b615e1981615d85565b615e1981615d9d56fe74c62d09fbc50aefae0794a9a068f786a692826fbdfe63828ec23a875865823fa365627a7a72315820160805ca78bb540916fefaeb9c5060d6b370e423bfb95c7cb75099eaad4f23326c6578706572696d656e74616cf564736f6c63430005100040", + "bytecode": "60806040523480156200001157600080fd5b506040516200618e3803806200618e8339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b615f6b80620002236000396000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c806372c6581611610182578063a311c7c2116100e9578063c81ff8fa116100a2578063d686c06c1161007c578063d686c06c1461061d578063dbf6334014610630578063dd3d2b2e14610638578063fd864ccf1461064b576102bb565b8063c81ff8fa146105e4578063c8977132146105f7578063d37c4d8b1461060a576102bb565b8063a311c7c21461057d578063a5fdc5de14610590578063ae3bbbbb146105a3578063b06e8c65146105b6578063b410a034146105c9578063bff4fdfc146105d1576102bb565b8063835e119c1161013b578063835e119c14610521578063849cf58814610534578063890235d414610547578063899ffef41461055a5780638da5cb5b146105625780639a5154b41461056a576102bb565b806372c65816146104c357806372cb051f146104d657806374185360146104eb57806379ba5097146104f35780637b1001b7146104fb57806380aa6a911461050e576102bb565b806331e6da5a116102265780634e99bda9116101df5780634e99bda91461044757806353a47bb71461044f5780635e887fe914610464578063614d08f8146104875780636bed04151461048f5780637168d2c2146104b0576102bb565b806331e6da5a146103c857806332608039146103db5780633b6afe40146103ee57806344ec6b621461040e57806347a9b6db14610421578063497d704a14610434576102bb565b80631313e6ca116102785780631313e6ca1461035b5780631627540c1461037257806316b2213f14610385578063242df9e1146103985780632af64bd3146103a05780632b3f41aa146103b5576102bb565b8063042e0688146102c057806304f3bcec146102d557806305b3c1c9146102f35780630b887dae146103135780630d969cf5146103265780631137aedf14610339575b600080fd5b6102d36102ce366004614e23565b61065e565b005b6102dd6106cf565b6040516102ea9190615ba2565b60405180910390f35b610306610301366004614d30565b6106de565b6040516102ea9190615aee565b6102d3610321366004614f5b565b6106f2565b6102d3610334366004614e53565b6107d0565b61034c610347366004614d30565b610963565b6040516102ea93929190615b18565b61036361097f565b6040516102ea93929190615d8b565b6102d3610380366004614d30565b610a26565b610306610393366004614d30565b610a84565b610306610a96565b6103a8610aa6565b6040516102ea9190615ae0565b6102d36103c3366004614d6c565b610bbd565b6102d36103d6366004615013565b610c0c565b6102dd6103e9366004614f5b565b610d47565b6104016103fc366004614eb4565b610d62565b6040516102ea9190615acf565b6102d361041c366004614da6565b610e10565b6102d361042f366004614eb4565b610e63565b6102d3610442366004614d30565b610f14565b6103a8610f5c565b610457610fee565b6040516102ea91906159fb565b610477610472366004614df3565b610ffd565b6040516102ea9493929190615db3565b61030661101f565b6104a261049d366004614e23565b61102c565b6040516102ea929190615d7d565b6102d36104be366004614eb4565b611098565b61034c6104d1366004614df3565b6111cd565b6104de61133f565b6040516102ea9190615abe565b6102d361134b565b6102d361149d565b610306610509366004614fb8565b611539565b6102d361051c366004614e23565b611545565b6102dd61052f366004614f5b565b611930565b6102d3610542366004614fd7565b611957565b6103a8610555366004614f97565b6119ca565b6104de611d50565b610457612026565b6102d3610578366004614da6565b612035565b61030661058b366004614d30565b612083565b61030661059e366004614d30565b612095565b6104a26105b1366004614d30565b6120a0565b6102d36105c4366004614e23565b6120b6565b6103066120fa565b6103a86105df366004614d30565b612104565b6103a86105f2366004614f97565b61210f565b6102d3610605366004614d30565b6124d5565b610306610618366004614e23565b61251a565b6102d361062b366004614da6565b61254c565b6103066125f2565b610306610646366004614d30565b6125f8565b6102d3610659366004614d6c565b612603565b610666612652565b6001600160a01b0316336001600160a01b03161461069f5760405162461bcd60e51b815260040161069690615c4f565b60405180910390fd5b600081116106bf5760405162461bcd60e51b815260040161069690615d0f565b6106cb82826000612669565b5050565b6002546001600160a01b031681565b6000806106ea83612793565b509392505050565b6106fa61289d565b60006107046128c9565b604051636b42ba1d60e11b81529091506001600160a01b0382169063d685743a90610736908590600090600401615b40565b600060405180830381600087803b15801561075057600080fd5b505af1158015610764573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03841692506304bd11e5915061079590600190600401615ae0565b600060405180830381600087803b1580156107af57600080fd5b505af11580156107c3573d6000803e3d6000fd5b505050506106cb826128e0565b6107d8612d8e565b6107e0612e78565b6001600160a01b0316631b16802c85856040518363ffffffff1660e01b815260040161080d929190615a3f565b606060405180830381600087803b15801561082757600080fd5b505af115801561083b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061085f9190810190615106565b50505060008381526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906108a19087908690600401615a3f565b600060405180830381600087803b1580156108bb57600080fd5b505af11580156108cf573d6000803e3d6000fd5b505050506108dc84612e8f565b631cd554d160e21b6000526005602052600080516020615f098339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b49061092b9087908590600401615a3f565b600060405180830381600087803b15801561094557600080fd5b505af1158015610959573d6000803e3d6000fd5b5050505050505050565b600080600061097184612f08565b509196909550909350915050565b60008060008060006109b86109b37f6578743a41676772656761746f7249737375656453796e746873000000000000612f78565b612fd5565b509350509250506000806109ca613060565b91509150839650816000146109ee576109e9878363ffffffff61309b16565b6109f1565b60005b955060006109fd6130bb565b90504281108015610a1a5750838142031180610a1a575081814203115b95505050505050909192565b610a2e61289d565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610a799083906159fb565b60405180910390a150565b60066020526000908152604090205481565b6000610aa0613165565b90505b90565b60006060610ab2611d50565b905060005b8151811015610bb4576000828281518110610ace57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610b1f908590600401615aee565b60206040518083038186803b158015610b3757600080fd5b505afa158015610b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b6f9190810190614d4e565b6001600160a01b0316141580610b9a57506000818152600360205260409020546001600160a01b0316155b15610bab5760009350505050610aa3565b50600101610ab7565b50600191505090565b610bc5612652565b6001600160a01b0316336001600160a01b031614610bf55760405162461bcd60e51b815260040161069690615c4f565b610bff82826131c0565b6106cb8260006001613261565b610c1f66119959541bdbdb60ca1b612f78565b6001600160a01b0316336001600160a01b031614610c4f5760405162461bcd60e51b815260040161069690615c6f565b6000610c596134d3565b9050816001600160801b0316816001600160a01b031663988e65956040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9e57600080fd5b505afa158015610cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cd69190810190615031565b6001600160801b031610156106cb5760405163abb6de9560e01b81526001600160a01b0382169063abb6de9590610d11908590600401615d6f565b600060405180830381600087803b158015610d2b57600080fd5b505af1158015610d3f573d6000803e3d6000fd5b505050505050565b6005602052600090815260409020546001600160a01b031681565b60408051828152602080840282010190915260609082908290828015610d92578160200160208202803883390190505b50905060005b82811015610e055760056000878784818110610db057fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b0316828281518110610de557fe5b6001600160a01b0390921660209283029190910190910152600101610d98565b509150505b92915050565b610e18612652565b6001600160a01b0316336001600160a01b031614610e485760405162461bcd60e51b815260040161069690615c4f565b610e5283836134f3565b610e5e83826000612669565b505050565b610e6b61289d565b8060005b81811015610ea857610ea0848483818110610e8657fe5b9050602002016020610e9b9190810190614fd7565b613528565b600101610e6f565b50610eb16128c9565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b8152600401610edd9190615ae0565b600060405180830381600087803b158015610ef757600080fd5b505af1158015610f0b573d6000803e3d6000fd5b50505050505050565b610f1c612652565b6001600160a01b0316336001600160a01b031614610f4c5760405162461bcd60e51b815260040161069690615c4f565b610f598160006001613261565b50565b6000610f666136b9565b6001600160a01b031663c8e5bbd5610f7e60016136d4565b6040518263ffffffff1660e01b8152600401610f9a9190615abe565b60006040518083038186803b158015610fb257600080fd5b505afa158015610fc6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e0a9190810190614ef6565b6001546001600160a01b031681565b60008060008061100d86866137b0565b93509350935093505b92959194509250565b6524b9b9bab2b960d11b81565b600080600061104961103d86613b5e565b620a69cb60eb1b613be3565b93509091506000905061106a61105d613c54565b839063ffffffff613cac16565b905084811061107c576000935061108f565b61108c858263ffffffff613cc116565b93505b50509250929050565b6110a061289d565b8060006110ab6128c9565b90506060826040519080825280602002602001820160405280156110d9578160200160208202803883390190505b506040516305ece36d60e21b81529091506001600160a01b038316906317b38db49061110d90889088908690600401615a98565b600060405180830381600087803b15801561112757600080fd5b505af115801561113b573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03851692506304bd11e5915061116c90600190600401615ae0565b600060405180830381600087803b15801561118657600080fd5b505af115801561119a573d6000803e3d6000fd5b506000925050505b83811015610d3f576111c58686838181106111b957fe5b905060200201356128e0565b6001016111a2565b60008060006111da612652565b6001600160a01b0316336001600160a01b03161461120a5760405162461bcd60e51b815260040161069690615c4f565b611212613ce9565b6001600160a01b031663952225f386866040518363ffffffff1660e01b815260040161123f929190615a24565b60206040518083038186803b15801561125757600080fd5b505afa15801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061128f9190810190614f3d565b6112ab5760405162461bcd60e51b815260040161069690615caf565b60006112b786866137b0565b929650909450925090506112cc868483613d01565b84611337576112d9613ce9565b6001600160a01b031663974e9e7f876040518263ffffffff1660e01b815260040161130491906159fb565b600060405180830381600087803b15801561131e57600080fd5b505af1158015611332573d6000803e3d6000fd5b505050505b509250925092565b6060610aa060006136d4565b6060611355611d50565b905060005b81518110156106cb57600082828151811061137157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016113b391906159f0565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016113df929190615b5b565b60206040518083038186803b1580156113f757600080fd5b505afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061142f9190810190614d4e565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061148b9084908490615afc565b60405180910390a1505060010161135a565b6001546001600160a01b031633146114c75760405162461bcd60e51b815260040161069690615bdf565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261150a926001600160a01b0391821692911690615a09565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006106ea8383613e38565b6002546040516321f8a72160e01b81526000916001600160a01b0316906321f8a7219061158f9075446562744d69677261746f724f6e457468657265756d60501b90600401615aee565b60206040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115df9190810190614d4e565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061162e9075446562744d69677261746f724f6e4f7074696d69736d60501b90600401615aee565b60206040518083038186803b15801561164657600080fd5b505afa15801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061167e9190810190614d4e565b9050336001600160a01b038316148061169f5750336001600160a01b038216145b6116bb5760405162461bcd60e51b815260040161069690615d1f565b6001600160a01b03821615806116d857506001600160a01b038116155b6116f45760405162461bcd60e51b815260040161069690615bcf565b60006116fe6134d3565b6002546040516321f8a72160e01b81529192506001600160a01b0316906321f8a721906117489075446562744d69677261746f724f6e457468657265756d60501b90600401615aee565b60206040518083038186803b15801561176057600080fd5b505afa158015611774573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117989190810190614d4e565b6001600160a01b0316336001600160a01b0316141561181657604051631a378f0d60e01b81526001600160a01b03821690631a378f0d906117df9088908890600401615a3f565b600060405180830381600087803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50505050611929565b6002546040516321f8a72160e01b81526001600160a01b03909116906321f8a7219061185f9075446562744d69677261746f724f6e4f7074696d69736d60501b90600401615aee565b60206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118af9190810190614d4e565b6001600160a01b0316336001600160a01b0316141561192957604051636178258560e11b81526001600160a01b0382169063c2f04b0a906118f69088908890600401615a3f565b600060405180830381600087803b15801561191057600080fd5b505af1158015611924573d6000803e3d6000fd5b505050505b5050505050565b6004818154811061193d57fe5b6000918252602090912001546001600160a01b0316905081565b61195f61289d565b61196881613528565b6119706128c9565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b815260040161199c9190615ae0565b600060405180830381600087803b1580156119b657600080fd5b505af1158015611929573d6000803e3d6000fd5b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190611a1b907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615aee565b60206040518083038186803b158015611a3357600080fd5b505afa158015611a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a6b9190810190614d4e565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611ab9907453796e746865746978427269646765546f4261736560581b90600401615aee565b60206040518083038186803b158015611ad157600080fd5b505afa158015611ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b099190810190614d4e565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611b499066119959541bdbdb60ca1b90600401615aee565b60206040518083038186803b158015611b6157600080fd5b505afa158015611b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b999190810190614d4e565b9050336001600160a01b0384161480611bba5750336001600160a01b038316145b80611bcd5750336001600160a01b038216145b611be95760405162461bcd60e51b815260040161069690615bef565b6000878152600560205260409020546001600160a01b0316611c1d5760405162461bcd60e51b815260040161069690615c8f565b60008511611c3d5760405162461bcd60e51b815260040161069690615d0f565b611c4686612e8f565b6000878152600560205260409081902054905163219e412d60e21b81526001600160a01b039091169063867904b490611c859089908990600401615a3f565b600060405180830381600087803b158015611c9f57600080fd5b505af1158015611cb3573d6000803e3d6000fd5b50505050600080611cc389613fc3565b91509150611ccf6128c9565b6001600160a01b03166342c7b819611cf5611cf08a8663ffffffff61404816565b614072565b6040518263ffffffff1660e01b8152600401611d119190615aee565b600060405180830381600087803b158015611d2b57600080fd5b505af1158015611d3f573d6000803e3d6000fd5b50929b9a5050505050505050505050565b606080611d5b61409b565b60408051600f808252610200820190925291925060609190602082016101e080388339019050509050680a6f2dce8d0cae8d2f60bb1b81600081518110611d9e57fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110611dc457fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110611dee57fe5b6020026020010181815250506d21b4b931bab4ba213932b0b5b2b960911b81600381518110611e1957fe5b6020026020010181815250507153796e74686574697844656274536861726560701b81600481518110611e4857fe5b60200260200101818152505066119959541bdbdb60ca1b81600581518110611e6c57fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b81600681518110611e9a57fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b81600781518110611ec557fe5b602002602001018181525050692634b8bab4b230ba37b960b11b81600881518110611eec57fe5b602002602001018181525050704c697175696461746f725265776172647360781b81600981518110611f1a57fe5b6020026020010181815250506844656274436163686560b81b81600a81518110611f4057fe5b6020026020010181815250506c29bcb73a342932b232b2b6b2b960991b81600b81518110611f6a57fe5b60200260200101818152505073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b81600c81518110611f9b57fe5b6020026020010181815250507f6578743a41676772656761746f7249737375656453796e74687300000000000081600d81518110611fd557fe5b602002602001018181525050766578743a41676772656761746f7244656274526174696f60481b81600e8151811061200957fe5b60200260200101818152505061201f82826140ec565b9250505090565b6000546001600160a01b031681565b61203d612652565b6001600160a01b0316336001600160a01b03161461206d5760405162461bcd60e51b815260040161069690615c4f565b61207783836131c0565b610e5e83826000613261565b600061208e826141a1565b5092915050565b6000610e0a826141f7565b6000806120ac836141a1565b915091505b915091565b6120be612652565b6001600160a01b0316336001600160a01b0316146120ee5760405162461bcd60e51b815260040161069690615c4f565b6106cb82826000613261565b6000610aa0613c54565b6000610e0a82614293565b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190612160907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615aee565b60206040518083038186803b15801561217857600080fd5b505afa15801561218c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121b09190810190614d4e565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a721906121fe907453796e746865746978427269646765546f4261736560581b90600401615aee565b60206040518083038186803b15801561221657600080fd5b505afa15801561222a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061224e9190810190614d4e565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061228e9066119959541bdbdb60ca1b90600401615aee565b60206040518083038186803b1580156122a657600080fd5b505afa1580156122ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122de9190810190614d4e565b9050336001600160a01b03841614806122ff5750336001600160a01b038316145b806123125750336001600160a01b038216145b61232e5760405162461bcd60e51b815260040161069690615bef565b6000878152600560205260409020546001600160a01b03166123625760405162461bcd60e51b815260040161069690615c8f565b600085116123825760405162461bcd60e51b815260040161069690615d0f565b61238a612e78565b6001600160a01b0316631b16802c87896040518363ffffffff1660e01b81526004016123b7929190615a3f565b606060405180830381600087803b1580156123d157600080fd5b505af11580156123e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124099190810190615106565b50505060008781526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061244b9089908990600401615a3f565b600060405180830381600087803b15801561246557600080fd5b505af1158015612479573d6000803e3d6000fd5b5050505060008061248989613fc3565b915091506124956128c9565b6001600160a01b03166342c7b8196124b6611cf08a8663ffffffff61404816565b6000036040518263ffffffff1660e01b8152600401611d119190615aee565b6124dd612652565b6001600160a01b0316336001600160a01b03161461250d5760405162461bcd60e51b815260040161069690615c4f565b610f598160006001612669565b60008061252684613b5e565b905080612537576000915050610e0a565b6125418184613be3565b509095945050505050565b612554612d8e565b826001600160a01b031663d4b839926040518163ffffffff1660e01b815260040160206040518083038186803b15801561258d57600080fd5b505afa1580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125c59190810190614d4e565b6001600160a01b0316639dc29fac83836040518363ffffffff1660e01b8152600401610edd929190615a3f565b60045490565b6000610e0a826142b2565b61260b612652565b6001600160a01b0316336001600160a01b03161461263b5760405162461bcd60e51b815260040161069690615c4f565b61264582826134f3565b6106cb8260006001612669565b6000610aa0680a6f2dce8d0cae8d2f60bb1b612f78565b61267161432b565b1561267b57610e5e565b60008061268785612f08565b935050509150612696816144f4565b826126c057818411156126bb5760405162461bcd60e51b815260040161069690615c2f565b6126c4565b8193505b6126ce8585614512565b6126d785612e8f565b631cd554d160e21b6000526005602052600080516020615f098339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b4906127269088908890600401615a3f565b600060405180830381600087803b15801561274057600080fd5b505af1158015612754573d6000803e3d6000fd5b505050506127606128c9565b6001600160a01b03166342c7b81961277786614072565b6040518263ffffffff1660e01b81526004016118f69190615aee565b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a721906127d7906b131959d858de53585c9ad95d60a21b90600401615aee565b60206040518083038186803b1580156127ef57600080fd5b505afa158015612803573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128279190810190614d4e565b6001600160a01b0316836001600160a01b0316141561284d5750600019905060006120b1565b60008061285f620a69cb60eb1b613fc3565b915091506000612877612871876141f7565b8461462e565b9050612891612884613c54565b829063ffffffff61404816565b94509092505050915091565b6000546001600160a01b031633146128c75760405162461bcd60e51b815260040161069690615cbf565b565b6000610aa06844656274436163686560b81b612f78565b6000818152600560205260409020546001600160a01b0316806129155760405162461bcd60e51b815260040161069690615c9f565b631cd554d160e21b82141561293c5760405162461bcd60e51b815260040161069690615cef565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561297757600080fd5b505afa15801561298b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129af9190810190614f79565b90508015612c31576000806129c26136b9565b6001600160a01b0316638295016a86856040518363ffffffff1660e01b81526004016129ef929190615b7b565b60606040518083038186803b158015612a0757600080fd5b505afa158015612a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a3f9190810190615106565b509150915060008111612a645760405162461bcd60e51b815260040161069690615d5f565b6000612a6e614640565b631cd554d160e21b6000526005602052600080516020615f098339815191525460405163219e412d60e21b81529192506001600160a01b03169063867904b490612abe9084908790600401615a3f565b600060405180830381600087803b158015612ad857600080fd5b505af1158015612aec573d6000803e3d6000fd5b50505050612af86128c9565b6001600160a01b03166342c7b819612b0f85614072565b6040518263ffffffff1660e01b8152600401612b2b9190615aee565b600060405180830381600087803b158015612b4557600080fd5b505af1158015612b59573d6000803e3d6000fd5b50505050806001600160a01b0316633a70599c866001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b158015612ba557600080fd5b505afa158015612bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612bdd9190810190614ff5565b846040518363ffffffff1660e01b8152600401612bfb929190615bb0565b600060405180830381600087803b158015612c1557600080fd5b505af1158015612c29573d6000803e3d6000fd5b505050505050505b60005b600454811015612d1857826001600160a01b031660048281548110612c5557fe5b6000918252602090912001546001600160a01b03161415612d105760048181548110612c7d57fe5b600091825260209091200180546001600160a01b0319169055600480546000198101908110612ca857fe5b600091825260209091200154600480546001600160a01b039092169183908110612cce57fe5b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790556004805490612d0a906000198301614bbd565b50612d18565b600101612c34565b506001600160a01b038216600090815260066020908152604080832083905585835260059091529081902080546001600160a01b0319169055517f6166f5c475cc1cd535c6cdf14a6d5edb811e34117031fc2863392a136eb655d090612d819085908590615afc565b60405180910390a1505050565b612d96614640565b6001600160a01b0316336001600160a01b03161480612e5c57506002546040516321f8a72160e01b81526001600160a01b03909116906321f8a72190612df79073223cb730b6b4b1a9bcb73a342932b232b2b6b2b960611b90600401615aee565b60206040518083038186803b158015612e0f57600080fd5b505afa158015612e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e479190810190614d4e565b6001600160a01b0316336001600160a01b0316145b6128c75760405162461bcd60e51b815260040161069690615cff565b6000610aa06822bc31b430b733b2b960b91b612f78565b612e9761465b565b6001600160a01b0316631d5b277f6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b84604051602001612ed39291906159aa565b60405160208183030381529060405280519060200120426040518463ffffffff1660e01b815260040161199c93929190615b18565b600080600080612f27612f1a86613b5e565b631cd554d160e21b613be3565b91945092509050600080612f3a87612793565b915091508195508280612f4a5750805b9250858510612f5c5760009550612f6f565b612f6c868663ffffffff613cc116565b95505b50509193509193565b60008181526003602090815260408083205490516001600160a01b039091169182151591612fa8918691016159d0565b6040516020818303038152906040529061208e5760405162461bcd60e51b81526004016106969190615bbe565b6000806000806000856001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561301657600080fd5b505afa15801561302a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061304e9190810190615149565b939a9299509097509550909350915050565b60008060008061308c6109b3766578743a41676772656761746f7244656274526174696f60481b612f78565b50919650909450505050509091565b60006130b483836b033b2e3c9fd0803ce8000000614678565b9392505050565b60006130c561465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b8152600401613115929190615b0a565b60206040518083038186803b15801561312d57600080fd5b505afa158015613141573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aa09190810190614f79565b600061316f61465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b8152600401613115929190615b0a565b6131c86146bc565b6001600160a01b0316637d3f0ba283836040518363ffffffff1660e01b81526004016131f5929190615a09565b60206040518083038186803b15801561320d57600080fd5b505afa158015613221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506132459190810190614f3d565b6106cb5760405162461bcd60e51b815260040161069690615bff565b61326961432b565b1561327357610e5e565b806133d05761328183614293565b61329d5760405162461bcd60e51b815260040161069690615d3f565b6000806132a8612e78565b6001600160a01b0316631b16802c86631cd554d160e21b6040518363ffffffff1660e01b81526004016132dc929190615a3f565b606060405180830381600087803b1580156132f657600080fd5b505af115801561330a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061332e9190810190615106565b90935091505080156133cd57613342612e78565b6001600160a01b0316634c268fc886631cd554d160e21b87866040518563ffffffff1660e01b815260040161337a9493929190615a5a565b60206040518083038186803b15801561339257600080fd5b505afa1580156133a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133ca9190810190614f79565b93505b50505b6000806133df612f1a86613b5e565b92505091506000806133f087612793565b9150915061340583806134005750815b6144f4565b600084116134255760405162461bcd60e51b815260040161069690615c1f565b841561343e5761343b848363ffffffff613cc116565b95505b600061344c888989886146db565b90508261345f868363ffffffff613cc116565b116109595761346c613ce9565b6001600160a01b031663974e9e7f896040518263ffffffff1660e01b815260040161349791906159fb565b600060405180830381600087803b1580156134b157600080fd5b505af11580156134c5573d6000803e3d6000fd5b505050505050505050505050565b6000610aa07153796e74686574697844656274536861726560701b612f78565b6134fb6146bc565b6001600160a01b0316630487261783836040518363ffffffff1660e01b81526004016131f5929190615a09565b6000816001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561356357600080fd5b505afa158015613577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061359b9190810190614f79565b6000818152600560205260409020549091506001600160a01b0316156135d35760405162461bcd60e51b815260040161069690615d2f565b6001600160a01b038216600090815260066020526040902054156136095760405162461bcd60e51b815260040161069690615ccf565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0384166001600160a01b03199182168117909255600083815260056020908152604080832080549094168517909355928152600690925290819020829055517f0a2b6ebf143b3e9fcd67e17748ad315174746100c27228468b2c98c302c62884906136ad9083908590615afc565b60405180910390a15050565b6000610aa06c45786368616e6765526174657360981b612f78565b606080826136e35760006136e6565b60015b60ff1660048054905001604051908082528060200260200182016040528015613719578160200160208202803883390190505b50905060005b60045481101561378057600660006004838154811061373a57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054825183908390811061376d57fe5b602090810291909101015260010161371f565b508215610e0a576004548151620a69cb60eb1b918391811061379e57fe5b60200260200101818152505092915050565b60008060008060006137c4612f1a88613b5e565b91935090915060009050806137de620a69cb60eb1b613fc3565b915091506137f283806134005750816144f4565b600088156139d057613802614808565b905061380c613ce9565b6001600160a01b031663f557f73c8661382d6138278e6141f7565b8761462e565b846040518463ffffffff1660e01b815260040161384c93929190615b18565b60206040518083038186803b15801561386457600080fd5b505afa158015613878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061389c9190810190614f79565b96506139546139466139308373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ec57600080fd5b505af4158015613900573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506139249190810190614f79565b9063ffffffff61486916565b61393a8a8761488e565b9063ffffffff61404816565b61394f8c6148a0565b6148aa565b97506139c06139ba6139a48373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ec57600080fd5b6139ae8b8761462e565b9063ffffffff6148c016565b886148aa565b9650600095506110169350505050565b6139d86148de565b905060006139ef6139e761493e565b613924614993565b90506000613a15613a0f83613a038f6141f7565b9063ffffffff613cc116565b8661462e565b9050613a1f613ce9565b6001600160a01b031663f557f73c8883866040518463ffffffff1660e01b8152600401613a4e93929190615b18565b60206040518083038186803b158015613a6657600080fd5b505afa158015613a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613a9e9190810190614f79565b98506000613af7613aed8573__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ec57600080fd5b61393a8c8961488e565b9050613b028d6141f7565b613b12828563ffffffff61486916565b10613b4157879950613b2783613a038f6141f7565b9a50613b328d6149ed565b98506110169650505050505050565b613b4c8d82856149f7565b909b5098506110169650505050505050565b6000613b686134d3565b6001600160a01b03166370a08231836040518263ffffffff1660e01b8152600401613b9391906159fb565b60206040518083038186803b158015613bab57600080fd5b505afa158015613bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e0a9190810190614f79565b6000806000806000613bf361097f565b92505091508660001415613c0f57600094509092509050613c4d565b600080613c1b88613fc3565b91509150613c3882613c2c8b614a52565b9063ffffffff613cac16565b96508395508080613c465750825b9450505050505b9250925092565b6000613c5e61465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401613115929190615b0a565b60006130b48383670de0b6b3a7640000614678565b600082821115613ce35760405162461bcd60e51b815260040161069690615c3f565b50900390565b6000610aa0692634b8bab4b230ba37b960b11b612f78565b613d09614a70565b6001600160a01b031663270fb338846040518263ffffffff1660e01b8152600401613d3491906159fb565b600060405180830381600087803b158015613d4e57600080fd5b505af1158015613d62573d6000803e3d6000fd5b505050506000613d706134d3565b90506000613d7d85613b5e565b905082841415613db557604051631a378f0d60e01b81526001600160a01b03831690631a378f0d906117df9088908590600401615a3f565b6000613dc085614a8f565b9050826001600160a01b0316631a378f0d87848410613ddf5784613de1565b835b6040518363ffffffff1660e01b8152600401613dfe929190615a3f565b600060405180830381600087803b158015613e1857600080fd5b505af1158015613e2c573d6000803e3d6000fd5b50505050505050505050565b6000806000806000613e486128c9565b6001600160a01b0316633a900a2e6040518163ffffffff1660e01b815260040160806040518083038186803b158015613e8057600080fd5b505afa158015613e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613eb891908101906150b1565b935093505092508180613ec85750805b935085613f6e57600080613eda6128c9565b6001600160a01b0316632992dba26040518163ffffffff1660e01b8152600401604080518083038186803b158015613f1157600080fd5b505afa158015613f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613f49919081019061504f565b9092509050613f5e858363ffffffff61486916565b94508580613f695750805b955050505b631cd554d160e21b871415613f885750909250613fbc9050565b600080613f9489613fc3565b9092509050613fa9858363ffffffff613cac16565b8680613fb25750815b9650965050505050505b9250929050565b600080613fce6136b9565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401613ff99190615aee565b604080518083038186803b15801561401057600080fd5b505afa158015614024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120ac919081019061504f565b6000670de0b6b3a7640000614063848463ffffffff614ac116565b8161406a57fe5b049392505050565b6000600160ff1b82106140975760405162461bcd60e51b815260040161069690615d4f565b5090565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106140dd57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561411c578160200160208202803883390190505b50905060005b835181101561415e5783818151811061413757fe5b602002602001015182828151811061414b57fe5b6020908102919091010152600101614122565b5060005b825181101561208e5782818151811061417757fe5b602002602001015182828651018151811061418e57fe5b6020908102919091010152600101614162565b60008060006141af846141f7565b90506000806141c061103d87613b5e565b925050915082600014156141dc576000945092506120b1915050565b6141ec828463ffffffff613cac16565b945092505050915091565b6000610e0a614204614a70565b6001600160a01b0316628cc262846040518263ffffffff1660e01b815260040161422e91906159fb565b60206040518083038186803b15801561424657600080fd5b505afa15801561425a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061427e9190810190614f79565b61392461428a856149ed565b613924866148a0565b60006142a96142a0613165565b613924846142b2565b42101592915050565b60006142bc61465b565b6001600160a01b03166323257c2b6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b856040516020016142f89291906159aa565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401613b93929190615b0a565b600080614351766578743a41676772656761746f7244656274526174696f60481b612f78565b90506000816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561438e57600080fd5b505afa1580156143a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506143c69190810190615149565b50505091505060006143d66136b9565b6001600160a01b031663045056f8620a69cb60eb1b6040518263ffffffff1660e01b81526004016144079190615aee565b606060405180830381600087803b15801561442157600080fd5b505af1158015614435573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250614459919081019061506e565b50915050614465614afb565b6001600160a01b031663413caeb584846040518363ffffffff1660e01b8152600401614492929190615a3f565b602060405180830381600087803b1580156144ac57600080fd5b505af11580156144c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506144e49190810190614f3d565b806144ec5750805b935050505090565b8015610f595760405162461bcd60e51b815260040161069690615c7f565b61451a614a70565b6001600160a01b031663270fb338836040518263ffffffff1660e01b815260040161454591906159fb565b600060405180830381600087803b15801561455f57600080fd5b505af1158015614573573d6000803e3d6000fd5b5050505060006145816134d3565b9050600061458e83614a8f565b9050806145fa57604051636178258560e11b81526001600160a01b0383169063c2f04b0a906145c39087908790600401615a3f565b600060405180830381600087803b1580156145dd57600080fd5b505af11580156145f1573d6000803e3d6000fd5b50505050614628565b604051636178258560e11b81526001600160a01b0383169063c2f04b0a9061092b9087908590600401615a3f565b50505050565b60006130b4838363ffffffff614b1716565b6000610aa06c29bcb73a342932b232b2b6b2b960991b612f78565b6000610aa06e466c657869626c6553746f7261676560881b612f78565b60008061469e8461469287600a870263ffffffff614ac116565b9063ffffffff614b2c16565b90506005600a825b06106146b057600a015b600a9004949350505050565b6000610aa07044656c6567617465417070726f76616c7360781b612f78565b60006146e561432b565b156146f257506000614800565b8282106146ff5782614701565b815b905061470e858284613d01565b631cd554d160e21b6000526005602052600080516020615f0983398151915254604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061475d9087908590600401615a3f565b600060405180830381600087803b15801561477757600080fd5b505af115801561478b573d6000803e3d6000fd5b505050506147976128c9565b6001600160a01b03166342c7b8196147ae83614072565b6000036040518263ffffffff1660e01b81526004016147cd9190615aee565b600060405180830381600087803b1580156147e757600080fd5b505af11580156147fb573d6000803e3d6000fd5b505050505b949350505050565b600061481261465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7573656c664c69717569646174696f6e50656e616c747960501b6040518363ffffffff1660e01b8152600401613115929190615b0a565b6000828201838110156130b45760405162461bcd60e51b815260040161069690615c0f565b60006130b4838363ffffffff613cac16565b6000613b68612652565b60008183106148b957816130b4565b5090919050565b60006130b48261469285670de0b6b3a764000063ffffffff614ac116565b60006148e861465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b74736e784c69717569646174696f6e50656e616c747960581b6040518363ffffffff1660e01b8152600401613115929190615b0a565b600061494861465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b69199b1859d4995dd85c9960b21b6040518363ffffffff1660e01b8152600401613115929190615b0a565b600061499d61465b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1b1a5c5d5a59185d1954995dd85c99608a1b6040518363ffffffff1660e01b8152600401613115929190615b0a565b6000613b68614b61565b6000806000614a05866148a0565b905080614a18868663ffffffff61486916565b11614a2a575083915060009050614a4a565b614a3e81613a03878763ffffffff61486916565b8593509150614a4a9050565b935093915050565b600080614a5d613060565b5090506130b4838263ffffffff614b7d16565b6000610aa0704c697175696461746f725265776172647360781b612f78565b600080614a9a613060565b5090508015614ab857614ab3838263ffffffff61309b16565b6130b4565b50600092915050565b600082614ad057506000610e0a565b82820282848281614add57fe5b04146130b45760405162461bcd60e51b815260040161069690615cdf565b6000610aa06d21b4b931bab4ba213932b0b5b2b960911b612f78565b60006130b48383670de0b6b3a7640000614b92565b6000808211614b4d5760405162461bcd60e51b815260040161069690615c5f565b6000828481614b5857fe5b04949350505050565b6000610aa06d2932bbb0b93222b9b1b937bbab1960911b612f78565b60006130b483836b033b2e3c9fd0803ce80000005b600080600a8304614ba9868663ffffffff614ac116565b81614bb057fe5b0490506005600a826146a6565b815481835581811115610e5e57600083815260209020610e5e918101908301610aa391905b808211156140975760008155600101614be2565b8035610e0a81615ec7565b8051610e0a81615ec7565b60008083601f840112614c1e57600080fd5b50813567ffffffffffffffff811115614c3657600080fd5b602083019150836020820283011115613fbc57600080fd5b600082601f830112614c5f57600080fd5b8151614c72614c6d82615de8565b615dc1565b91508181835260208401935060208101905083856020840282011115614c9757600080fd5b60005b83811015614cc35781614cad8882614cee565b8452506020928301929190910190600101614c9a565b5050505092915050565b8035610e0a81615edb565b8051610e0a81615edb565b8035610e0a81615ee4565b8051610e0a81615ee4565b8035610e0a81615eed565b8051610e0a81615eed565b8035610e0a81615ef6565b8051610e0a81615ef6565b8051610e0a81615eff565b600060208284031215614d4257600080fd5b60006148008484614bf6565b600060208284031215614d6057600080fd5b60006148008484614c01565b60008060408385031215614d7f57600080fd5b6000614d8b8585614bf6565b9250506020614d9c85828601614bf6565b9150509250929050565b600080600060608486031215614dbb57600080fd5b6000614dc78686614bf6565b9350506020614dd886828701614bf6565b9250506040614de986828701614ce3565b9150509250925092565b60008060408385031215614e0657600080fd5b6000614e128585614bf6565b9250506020614d9c85828601614ccd565b60008060408385031215614e3657600080fd5b6000614e428585614bf6565b9250506020614d9c85828601614ce3565b60008060008060808587031215614e6957600080fd5b6000614e758787614bf6565b9450506020614e8687828801614ce3565b9350506040614e9787828801614ce3565b9250506060614ea887828801614ce3565b91505092959194509250565b60008060208385031215614ec757600080fd5b823567ffffffffffffffff811115614ede57600080fd5b614eea85828601614c0c565b92509250509250929050565b60008060408385031215614f0957600080fd5b825167ffffffffffffffff811115614f2057600080fd5b614f2c85828601614c4e565b9250506020614d9c85828601614cd8565b600060208284031215614f4f57600080fd5b60006148008484614cd8565b600060208284031215614f6d57600080fd5b60006148008484614ce3565b600060208284031215614f8b57600080fd5b60006148008484614cee565b600080600060608486031215614fac57600080fd5b6000614dc78686614ce3565b60008060408385031215614fcb57600080fd5b6000614e128585614ce3565b600060208284031215614fe957600080fd5b60006148008484614cf9565b60006020828403121561500757600080fd5b60006148008484614d04565b60006020828403121561502557600080fd5b60006148008484614d0f565b60006020828403121561504357600080fd5b60006148008484614d1a565b6000806040838503121561506257600080fd5b6000614f2c8585614cee565b60008060006060848603121561508357600080fd5b600061508f8686614cee565b93505060206150a086828701614cd8565b9250506040614de986828701614cd8565b600080600080608085870312156150c757600080fd5b60006150d38787614cee565b94505060206150e487828801614cee565b93505060406150f587828801614cd8565b9250506060614ea887828801614cd8565b60008060006060848603121561511b57600080fd5b60006151278686614cee565b935050602061513886828701614cee565b9250506040614de986828701614cee565b600080600080600060a0868803121561516157600080fd5b600061516d8888614d25565b955050602061517e88828901614cee565b945050604061518f88828901614cee565b93505060606151a088828901614cee565b92505060806151b188828901614d25565b9150509295509295909350565b60006151ca8383615335565b505060200190565b60006151ca838361534f565b6151e781615e21565b82525050565b6151e76151f982615e21565b615ea6565b600061520a8385615e13565b93506001600160fb1b0383111561522057600080fd5b602083029250615231838584615e6e565b50500190565b600061524282615e0f565b61524c8185615e13565b935061525783615e09565b8060005b8381101561528557815161526f88826151be565b975061527a83615e09565b92505060010161525b565b509495945050505050565b600061529b82615e0f565b6152a58185615e13565b93506152b083615e09565b8060005b838110156152855781516152c888826151d2565b97506152d383615e09565b9250506001016152b4565b60006152e982615e0f565b6152f38185615e13565b93506152fe83615e09565b8060005b8381101561528557815161531688826151be565b975061532183615e09565b925050600101615302565b6151e781615e2c565b6151e781610aa3565b6151e761534a82610aa3565b610aa3565b6151e781615e31565b6151e781615e63565b600061536c82615e0f565b6153768185615e13565b9350615386818560208601615e7a565b61538f81615eb7565b9093019392505050565b60006153a6601883615e13565b7f6f6e65206d69677261746f72206d757374206265203078300000000000000000815260200192915050565b60006153df603583615e13565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000615436601483615e13565b736f6e6c792074727573746564206d696e7465727360601b815260200192915050565b6000615466601d83615e13565b7f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000815260200192915050565b600061549f601b83615e13565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006154d8601283615e13565b714e6f206465627420746f20666f726769766560701b815260200192915050565b6000615506601083615e13565b6f416d6f756e7420746f6f206c6172676560801b815260200192915050565b6000615532601e83615e13565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b600061556b600e83615e13565b6d09edcd8f240a6f2dce8d0cae8d2f60931b815260200192915050565b6000615595601a83615e13565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b60006155ce601183615e1c565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006155fb601083615e13565b6f135d5cdd08189948199959481c1bdbdb60821b815260200192915050565b6000615627601e83615e13565b7f412073796e7468206f7220534e58207261746520697320696e76616c69640000815260200192915050565b6000615660601383615e13565b721cde5b9d1a08191bd95cdb89dd08195e1a5cdd606a1b815260200192915050565b600061568f601483615e13565b7314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b815260200192915050565b60006156bf601883615e13565b7f4e6f74206f70656e20666f72206c69717569646174696f6e0000000000000000815260200192915050565b60006156f8602f83615e13565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b6000615755601c83615e13565b7f53796e7468206164647265737320616c72656164792065786973747300000000815260200192915050565b600061578e602183615e13565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006157d1601383615e13565b72086c2dcdcdee840e4cadadeecca40e6f2dce8d606b1b815260200192915050565b6000615800601283615e13565b7127b7363c9029bcb73a342932b232b2b6b2b960711b815260200192915050565b600061582e601583615e13565b7463616e6e6f7420697373756520302073796e74687360581b815260200192915050565b600061585f601983615e1c565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000615898601683615e13565b756f6e6c792074727573746564206d69677261746f727360501b815260200192915050565b60006158ca600c83615e13565b6b53796e74682065786973747360a01b815260200192915050565b60006158f2601e83615e13565b7f4d696e696d756d207374616b652074696d65206e6f7420726561636865640000815260200192915050565b600061592b602883615e13565b7f53616665436173743a2076616c756520646f65736e27742066697420696e2061815267371034b73a191a9b60c11b602082015260400192915050565b6000615975601a83615e13565b7f43616e6e6f742072656d6f766520776974686f75742072617465000000000000815260200192915050565b6151e781615e3c565b60006159b6828561533e565b6020820191506159c682846151ed565b5060140192915050565b60006159db826155c1565b91506159e7828461533e565b50602001919050565b60006159db82615852565b60208101610e0a82846151de565b60408101615a1782856151de565b6130b460208301846151de565b60408101615a3282856151de565b6130b4602083018461532c565b60408101615a4d82856151de565b6130b46020830184615335565b60808101615a6882876151de565b615a756020830186615335565b615a826040830185615335565b615a8f6060830184615335565b95945050505050565b60408082528101615aaa8185876151fe565b90508181036020830152615a8f81846152de565b602080825281016130b48184615237565b602080825281016130b48184615290565b60208101610e0a828461532c565b60208101610e0a8284615335565b60408101615a178285615335565b60408101615a4d8285615335565b60608101615b268286615335565b615b336020830185615335565b6148006040830184615335565b60408101615b4e8285615335565b6130b46020830184615358565b60408101615b698285615335565b81810360208301526148008184615361565b60608101615b898285615335565b615b966020830184615335565b6130b46040830161573c565b60208101610e0a828461534f565b60408101615a4d828561534f565b602080825281016130b48184615361565b60208082528101610e0a81615399565b60208082528101610e0a816153d2565b60208082528101610e0a81615429565b60208082528101610e0a81615459565b60208082528101610e0a81615492565b60208082528101610e0a816154cb565b60208082528101610e0a816154f9565b60208082528101610e0a81615525565b60208082528101610e0a8161555e565b60208082528101610e0a81615588565b60208082528101610e0a816155ee565b60208082528101610e0a8161561a565b60208082528101610e0a81615653565b60208082528101610e0a81615682565b60208082528101610e0a816156b2565b60208082528101610e0a816156eb565b60208082528101610e0a81615748565b60208082528101610e0a81615781565b60208082528101610e0a816157c4565b60208082528101610e0a816157f3565b60208082528101610e0a81615821565b60208082528101610e0a8161588b565b60208082528101610e0a816158bd565b60208082528101610e0a816158e5565b60208082528101610e0a8161591e565b60208082528101610e0a81615968565b60208101610e0a82846159a1565b60408101615a328285615335565b60608101615d998286615335565b615da66020830185615335565b614800604083018461532c565b60808101615a688287615335565b60405181810167ffffffffffffffff81118282101715615de057600080fd5b604052919050565b600067ffffffffffffffff821115615dff57600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b919050565b6000610e0a82615e48565b151590565b6000610e0a82615e21565b6001600160801b031690565b6001600160a01b031690565b69ffffffffffffffffffff1690565b6000610e0a82610aa3565b82818337506000910152565b60005b83811015615e95578181015183820152602001615e7d565b838111156146285750506000910152565b6000610e0a826000610e0a82615ec1565b601f01601f191690565b60601b90565b615ed081615e21565b8114610f5957600080fd5b615ed081615e2c565b615ed081610aa3565b615ed081615e31565b615ed081615e3c565b615ed081615e5456fe74c62d09fbc50aefae0794a9a068f786a692826fbdfe63828ec23a875865823fa365627a7a72315820fa7e5ff70c3f6ee753009897da4fddf5c15e30f0b09c76585842af569245d7596c6578706572696d656e74616cf564736f6c63430005100040", "abi": [ { "inputs": [ @@ -20716,10 +20716,10 @@ } ], "source": { - "keccak256": "0x122394906d88b596f09642fb03cdb2d4b798a65cf4280cecbccc0279ba67b3a2", + "keccak256": "0x01c9073479a323531592b4a418de497b073561b5ec28d2471093911debe3397e", "urls": [ - "bzz-raw://989df6d3f973b22ac2c8b4232fd4b6fba610ab16a851fca30d29c9994cf3c005", - "dweb:/ipfs/QmWX6D3UsevETnyMxxtz3Aw3sBfqms7qcpkfpuiHpq2bNx" + "bzz-raw://0484446b828045162a1bf1a8602ba0d041f971eba294b142e8b7428539120491", + "dweb:/ipfs/QmdFSSD2Gi7nX3vfYxK91Ckn4DyRLte6dnDciEWqTQQCmT" ] }, "metadata": { @@ -20741,10 +20741,10 @@ }, "sources": { "Issuer.sol": { - "keccak256": "0x122394906d88b596f09642fb03cdb2d4b798a65cf4280cecbccc0279ba67b3a2", + "keccak256": "0x01c9073479a323531592b4a418de497b073561b5ec28d2471093911debe3397e", "urls": [ - "bzz-raw://989df6d3f973b22ac2c8b4232fd4b6fba610ab16a851fca30d29c9994cf3c005", - "dweb:/ipfs/QmWX6D3UsevETnyMxxtz3Aw3sBfqms7qcpkfpuiHpq2bNx" + "bzz-raw://0484446b828045162a1bf1a8602ba0d041f971eba294b142e8b7428539120491", + "dweb:/ipfs/QmdFSSD2Gi7nX3vfYxK91Ckn4DyRLte6dnDciEWqTQQCmT" ] } }, diff --git a/publish/releases.json b/publish/releases.json index 44471b035..dcb3cd9b4 100644 --- a/publish/releases.json +++ b/publish/releases.json @@ -1074,6 +1074,11 @@ "layer": "both", "sources": ["DebtCache", "DynamicSynthRedeemer", "Issuer"], "released": "both" + }, + { + "sip": 420, + "layer": "both", + "sources": ["Issuer"] } ], "releases": [ @@ -2026,6 +2031,22 @@ }, "sips": [2059], "released": true + }, + { + "name": "Han", + "version": { + "major": 2, + "minor": 102 + }, + "sips": [420] + }, + { + "name": "Han (Optimism)", + "version": { + "major": 2, + "minor": 102 + }, + "sips": [420] } ] } diff --git a/publish/src/commands/deploy-migration.js b/publish/src/commands/deploy-migration.js index d80cd0762..23e0c2b45 100644 --- a/publish/src/commands/deploy-migration.js +++ b/publish/src/commands/deploy-migration.js @@ -8,6 +8,7 @@ const ethers = require('ethers'); const { gray, green, yellow } = require('chalk'); const { constants: { FLATTENED_FOLDER }, + networkToChainId, } = require('../../..'); const { loadCompiledFiles, getLatestSolTimestamp } = require('../solidity'); const linker = require('solc/linker'); @@ -268,6 +269,7 @@ const deployMigration = async ({ contractName: libName, buildPath, etherscanUrl, + network, useOvm, }); // verify contract @@ -276,6 +278,7 @@ const deployMigration = async ({ contractName, buildPath, etherscanUrl, + network, useOvm, linkedLibraryName: libName, linkedLibraryAddress: deployedLib.address, @@ -293,6 +296,7 @@ async function verifyContract({ contractName, buildPath, etherscanUrl, + network, useOvm, linkedLibraryName, linkedLibraryAddress, @@ -332,6 +336,8 @@ async function verifyContract({ qs.stringify({ module: 'contract', action: 'verifysourcecode', + chainId: Number(networkToChainId[network]), + codeformat: 'solidity-single-file', contractaddress: deployedContract.address, sourceCode: readFlattened(), contractname: contractName, diff --git a/publish/src/commands/verify.js b/publish/src/commands/verify.js index cd162c93e..38c07faf0 100644 --- a/publish/src/commands/verify.js +++ b/publish/src/commands/verify.js @@ -9,6 +9,7 @@ const qs = require('querystring'); const { constants: { BUILD_FOLDER, FLATTENED_FOLDER, CONFIG_FILENAME, DEPLOYMENT_FILENAME }, + networkToChainId, } = require('../../..'); const { @@ -57,6 +58,7 @@ const verify = async ({ buildPath, deploymentPath, network, useOvm, contractToVe const tableData = []; const etherscanKey = useOvm ? process.env.OVM_ETHERSCAN_KEY : process.env.ETHERSCAN_KEY; + const chainId = Number(networkToChainId[network]); for (const name of Object.keys(config)) { if (name !== contractToVerify) continue; @@ -176,36 +178,34 @@ const verify = async ({ buildPath, deploymentPath, network, useOvm, contractToVe // The version reported by solc-js is too verbose and needs a v at the front const solcVersion = 'v' + solc.version().replace('.Emscripten.clang', ''); - result = await axios.post( - etherscanUrl, - qs.stringify({ - module: 'contract', - action: 'verifysourcecode', - contractaddress: address, - sourceCode: warningHeader() + readFlattened(), - contractname: source, - // note: spelling mistake is on etherscan's side - constructorArguements: constructorArguments, - // if ovm remove the +commit... info - compilerversion: solcVersion, - optimizationUsed: 1, - runs, - libraryname1: 'SafeDecimalMath', - libraryname2: 'SystemSettingsLib', - libraryname3: 'SignedSafeDecimalMath', - libraryname4: 'ExchangeSettlementLib', - libraryaddress1: deployment.targets['SafeDecimalMath'].address, - libraryaddress2: (deployment.targets['SystemSettingsLib'] || {}).address, - libraryaddress3: (deployment.targets['SignedSafeDecimalMath'] || {}).address, - libraryaddress4: (deployment.targets['ExchangeSettlementLib'] || {}).address, - apikey: etherscanKey, - }), - { - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - }, - } - ); + const postData = { + module: 'contract', + action: 'verifysourcecode', + apikey: etherscanKey, + chainid: chainId, + codeformat: 'solidity-single-file', + contractaddress: address, + sourceCode: warningHeader() + readFlattened(), + contractname: source, + constructorArguements: constructorArguments, + compilerversion: solcVersion, + optimizationUsed: 1, + runs, + libraryname1: 'SafeDecimalMath', + libraryname2: 'SystemSettingsLib', + libraryname3: 'SignedSafeDecimalMath', + libraryname4: 'ExchangeSettlementLib', + libraryaddress1: deployment.targets['SafeDecimalMath'].address, + libraryaddress2: (deployment.targets['SystemSettingsLib'] || {}).address, + libraryaddress3: (deployment.targets['SignedSafeDecimalMath'] || {}).address, + libraryaddress4: (deployment.targets['ExchangeSettlementLib'] || {}).address, + }; + + result = await axios.post(etherscanUrl, qs.stringify(postData), { + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + }); console.log(gray(' - Got result:', result.data.result)); @@ -235,6 +235,7 @@ const verify = async ({ buildPath, deploymentPath, network, useOvm, contractToVe module: 'contract', action: 'checkverifystatus', guid, + apikey: etherscanKey, }, }); status = result.data.result;