multiversx-sdk-cli 12.0.0__tar.gz → 12.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/PKG-INFO +2 -2
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/node_config_toml.py +38 -2
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/step_config.py +1 -1
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/pyproject.toml +1 -1
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/.gitignore +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/LICENSE +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/README.md +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/__init__.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/args_converter.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/args_validation.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_config.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_config_env.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_config_wallet.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_contracts.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_data.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_delegation.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_deps.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_dns.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_faucet.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_get.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_governance.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_ledger.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_localnet.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_multisig.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_output.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_password.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_shared.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_tokens.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_transactions.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_validator_wallet.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_validators.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_wallet.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/config.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/config_env.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/config_wallet.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/constants.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/contract_verification.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cosign_transaction.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/dependencies/__init__.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/dependencies/install.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/dependencies/modules.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/dependencies/resolution.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/dns.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/docker.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/downloader.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/errors.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/guardian_relayer_data.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/guards.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/interfaces.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/__init__.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/config_default.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/config_general.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/config_networking.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/config_part.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/config_root.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/config_sharding.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/config_software.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/constants.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/genesis.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/genesis_json.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/genesis_smart_contracts_json.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/libraries.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/node.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/nodes_setup_json.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/p2p_toml.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/seednode_p2pKey.pem +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/step_build_software.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/step_clean.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/step_new.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/step_prerequisites.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/step_start.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/wallets.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/myprocess.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/sign_verify.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/signing_wrapper.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/simulation.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/transactions.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/utils.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/ux.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/version.py +0 -0
- {multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/workstation.py +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Any, Dict
|
|
1
|
+
from typing import Any, Dict, Optional
|
|
2
2
|
|
|
3
3
|
from multiversx_sdk_cli.localnet.config_root import ConfigRoot
|
|
4
4
|
from multiversx_sdk_cli.localnet.constants import (
|
|
@@ -10,7 +10,16 @@ from multiversx_sdk_cli.localnet.nodes_setup_json import CHAIN_ID
|
|
|
10
10
|
ConfigDict = Dict[str, Any]
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
def patch_config(
|
|
13
|
+
def patch_config(
|
|
14
|
+
data: ConfigDict,
|
|
15
|
+
config: ConfigRoot,
|
|
16
|
+
enable_epochs_config: ConfigDict,
|
|
17
|
+
enable_rounds_config: ConfigDict,
|
|
18
|
+
):
|
|
19
|
+
"""
|
|
20
|
+
Note: "enable_rounds_config" must be the original (not yet patched) "enableRounds.toml",
|
|
21
|
+
so that we can detect the default (upstream) Supernova activation round.
|
|
22
|
+
"""
|
|
14
23
|
supernova_activation_epoch = enable_epochs_config["EnableEpochs"].get("SupernovaEnableEpoch", None)
|
|
15
24
|
|
|
16
25
|
data["GeneralSettings"]["ChainID"] = CHAIN_ID
|
|
@@ -77,6 +86,26 @@ def patch_config(data: ConfigDict, config: ConfigRoot, enable_epochs_config: Con
|
|
|
77
86
|
if enable_epoch == supernova_activation_epoch:
|
|
78
87
|
item["StartRound"] = _compute_supernova_activation_round(config, supernova_activation_epoch)
|
|
79
88
|
|
|
89
|
+
# Adjust the "*ByRound" configs: entries defined (upstream) at the default Supernova activation round
|
|
90
|
+
# must be moved to the (localnet-specific) computed Supernova activation round.
|
|
91
|
+
# Otherwise, the node fails with "supernova activation configs mismatch".
|
|
92
|
+
default_supernova_activation_round = _get_supernova_activation_round(enable_rounds_config)
|
|
93
|
+
|
|
94
|
+
if supernova_activation_epoch is not None and default_supernova_activation_round is not None:
|
|
95
|
+
supernova_activation_round = _compute_supernova_activation_round(config, supernova_activation_epoch)
|
|
96
|
+
|
|
97
|
+
configs_by_round = [
|
|
98
|
+
(data["GeneralSettings"].get("ProcessConfigsByRound", []), "EnableRound"),
|
|
99
|
+
(data["GeneralSettings"].get("EpochStartConfigsByRound", []), "EnableRound"),
|
|
100
|
+
(data["GeneralSettings"].get("ConsensusConfigsByRound", []), "EnableRound"),
|
|
101
|
+
(data.get("Antiflood", {}).get("ConfigsByRound", []), "Round"),
|
|
102
|
+
]
|
|
103
|
+
|
|
104
|
+
for items, round_key in configs_by_round:
|
|
105
|
+
for item in items:
|
|
106
|
+
if int(item.get(round_key, 0)) == default_supernova_activation_round:
|
|
107
|
+
item[round_key] = supernova_activation_round
|
|
108
|
+
|
|
80
109
|
|
|
81
110
|
def patch_api(data: ConfigDict, config: ConfigRoot):
|
|
82
111
|
routes = data["APIPackages"]["transaction"]["Routes"]
|
|
@@ -121,6 +150,13 @@ def patch_enable_rounds(data: ConfigDict, config: ConfigRoot, enable_epochs_conf
|
|
|
121
150
|
supernova_entry["Round"] = str(supernova_computed_activation_round)
|
|
122
151
|
|
|
123
152
|
|
|
153
|
+
def _get_supernova_activation_round(enable_rounds_config: ConfigDict) -> Optional[int]:
|
|
154
|
+
supernova_entry = enable_rounds_config.get("RoundActivations", {}).get("SupernovaEnableRound")
|
|
155
|
+
if not supernova_entry:
|
|
156
|
+
return None
|
|
157
|
+
return int(supernova_entry["Round"])
|
|
158
|
+
|
|
159
|
+
|
|
124
160
|
def _compute_supernova_activation_round(config: ConfigRoot, supernova_activation_epoch: int) -> int:
|
|
125
161
|
# Epochs are zero-indexed.
|
|
126
162
|
return (
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/step_config.py
RENAMED
|
@@ -112,7 +112,7 @@ def patch_node_config(config: ConfigRoot):
|
|
|
112
112
|
enable_rounds_config_data = utils.read_toml_file(enable_rounds_config_file)
|
|
113
113
|
genesis_smart_contracts_data = utils.read_json_file(genesis_smart_contracts_file)
|
|
114
114
|
|
|
115
|
-
node_config_toml.patch_config(node_config_data, config, enable_epochs_config_data)
|
|
115
|
+
node_config_toml.patch_config(node_config_data, config, enable_epochs_config_data, enable_rounds_config_data)
|
|
116
116
|
node_config_toml.patch_api(api_config_data, config)
|
|
117
117
|
node_config_toml.patch_enable_epochs(enable_epochs_config_data, config)
|
|
118
118
|
node_config_toml.patch_enable_rounds(enable_rounds_config_data, config, enable_epochs_config_data)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/args_converter.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/args_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_config_env.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_config_wallet.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_delegation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_governance.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_transactions.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_validator_wallet.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cli_validators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/contract_verification.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/cosign_transaction.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/dependencies/__init__.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/dependencies/install.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/dependencies/modules.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/guardian_relayer_data.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/config_part.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/config_root.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/constants.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/genesis.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/genesis_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/libraries.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/p2p_toml.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/step_clean.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/step_new.py
RENAMED
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/step_start.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/localnet/wallets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-12.0.0 → multiversx_sdk_cli-12.0.1}/multiversx_sdk_cli/signing_wrapper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|