worker-automate-hub 0.5.90__tar.gz → 0.5.92__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/PKG-INFO +1 -1
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/pyproject.toml +1 -1
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +79 -17
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/README.md +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/ahead_service.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/client.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/datalake_service.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/helpers/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/rdp_service.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/rpa_fila_service.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/rpa_historico_service.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/webhook_service.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/cli.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/config/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/config/settings.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/config.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/core/so_manipulation.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/deprecation.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/rate_limit.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/repeat.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/retry.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/singleton.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/timeit.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dao/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dao/rpa_fila.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dao/rpa_robo.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dto/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dto/rpa_processo_rdp_dto.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/playground.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/task_definitions.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/task_executor.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/__init__.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/env.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/logger.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/toast.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/updater.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/util.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
- {worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/worker.py +0 -0
@@ -1042,6 +1042,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
|
|
1042
1042
|
quantidade = item['novaQuantidade']
|
1043
1043
|
preco = item['novoPreco']
|
1044
1044
|
descricao = item['descricao']
|
1045
|
+
console.print(quantidade, preco, descricao)
|
1045
1046
|
|
1046
1047
|
if 'arla' in descricao.lower():
|
1047
1048
|
item_arla = True
|
@@ -1079,26 +1080,87 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
|
|
1079
1080
|
)
|
1080
1081
|
|
1081
1082
|
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1083
|
+
i = 0
|
1084
|
+
while i < 3:
|
1085
|
+
try:
|
1086
|
+
console.print("Clicando sobre a lupa para inserir o almoxarifado...\n")
|
1087
|
+
app = Application().connect(class_name="TFrmIncluiItemPreVenda", timeout=60)
|
1088
|
+
main_window = app["TFrmIncluiItemPreVenda"]
|
1089
|
+
main_window.set_focus()
|
1090
|
+
panel_TGroup_Box= main_window.child_window(class_name="TPanel", found_index=2)
|
1091
|
+
lupa_almoxarifaco = panel_TPage.child_window(class_name="TDBIBitBtn", found_index=1)
|
1092
|
+
lupa_almoxarifaco.click()
|
1093
|
+
console.print("Lupa clicado com sucesso inserindo a descrição do almoxarifado...\n")
|
1094
|
+
await worker_sleep(2)
|
1095
|
+
|
1096
|
+
dialog_buscar = is_window_open_by_class("TfrmDialogBuscaGeral", "TfrmDialogBuscaGeral")
|
1097
|
+
if dialog_buscar["IsOpened"] == True:
|
1098
|
+
break
|
1099
|
+
else:
|
1100
|
+
console.print("Não foi possivel abrir a janela de Busca Geral")
|
1101
|
+
i = i+1
|
1102
|
+
except Exception as e:
|
1103
|
+
console.print(f"Erro ao abrir a janela de Busca Geral: {e}")
|
1104
|
+
i = i+1
|
1105
|
+
|
1106
|
+
|
1107
|
+
if i == 3:
|
1108
|
+
retorno = f"Não foi possivel abrir a tela para buscar pelo item do produto na seleção do almoxarifado - \nEtapas Executadas:\n{steps}"
|
1109
|
+
return RpaRetornoProcessoDTO(
|
1110
|
+
sucesso=False,
|
1111
|
+
retorno=retorno,
|
1112
|
+
status=RpaHistoricoStatusEnum.Falha,
|
1113
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
|
1114
|
+
)
|
1090
1115
|
|
1091
1116
|
app = Application().connect(class_name="TfrmDialogBuscaGeral", timeout=60)
|
1092
1117
|
main_window = app["TfrmDialogBuscaGeral"]
|
1093
1118
|
main_window.set_focus()
|
1094
1119
|
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1120
|
+
console.print("Buscando a mercadoria baseado na descrição...\n")
|
1121
|
+
rect = main_window.rectangle()
|
1122
|
+
center_x = (rect.left + rect.right) // 2
|
1123
|
+
center_y = (rect.top + rect.bottom) // 2
|
1098
1124
|
|
1099
|
-
|
1100
|
-
|
1101
|
-
await worker_sleep(
|
1125
|
+
pyautogui.moveTo(center_x, center_y)
|
1126
|
+
pyautogui.click(coords=(center_x, center_y))
|
1127
|
+
await worker_sleep(1)
|
1128
|
+
send_keys("^({HOME})")
|
1129
|
+
|
1130
|
+
last_line = ''
|
1131
|
+
while True:
|
1132
|
+
with pyautogui.hold('ctrl'):
|
1133
|
+
pyautogui.press('c')
|
1134
|
+
await worker_sleep(1)
|
1135
|
+
with pyautogui.hold('ctrl'):
|
1136
|
+
pyautogui.press('c')
|
1137
|
+
|
1138
|
+
win32clipboard.OpenClipboard()
|
1139
|
+
descricao_item = win32clipboard.GetClipboardData().strip()
|
1140
|
+
win32clipboard.CloseClipboard()
|
1141
|
+
|
1142
|
+
if last_line == descricao_item:
|
1143
|
+
retorno = f"Todos os itens percorridos e não foi possivel encontrar a descrição condizente a {descricao} \nEtapas Executadas:\n{steps}"
|
1144
|
+
return RpaRetornoProcessoDTO(
|
1145
|
+
sucesso=False,
|
1146
|
+
retorno=retorno,
|
1147
|
+
status=RpaHistoricoStatusEnum.Falha,
|
1148
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
|
1149
|
+
)
|
1150
|
+
else:
|
1151
|
+
if descricao.lower() in descricao_item.lower():
|
1152
|
+
break
|
1153
|
+
else:
|
1154
|
+
last_line = descricao_item
|
1155
|
+
pyautogui.press('down')
|
1156
|
+
|
1157
|
+
# field_descricao_almoxarifado = main_window.child_window(class_name="TEdit", found_index=0)
|
1158
|
+
# field_descricao_almoxarifado.set_edit_text(descricao)
|
1159
|
+
# await worker_sleep(2)
|
1160
|
+
|
1161
|
+
# btn_lupa_pesquisar = main_window.child_window(class_name="TBitBtn", found_index=0)
|
1162
|
+
# btn_lupa_pesquisar.click()
|
1163
|
+
# await worker_sleep(2)
|
1102
1164
|
|
1103
1165
|
main_window.set_focus()
|
1104
1166
|
send_keys("%o")
|
@@ -1107,8 +1169,8 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
|
|
1107
1169
|
app = Application().connect(class_name="TFrmIncluiItemPreVenda", timeout=60)
|
1108
1170
|
main_window = app["TFrmIncluiItemPreVenda"]
|
1109
1171
|
main_window.set_focus()
|
1110
|
-
panel_TGroup_Box=
|
1111
|
-
natureza_oper_select =
|
1172
|
+
panel_TGroup_Box= main_window.child_window(class_name="TPanel", found_index=2)
|
1173
|
+
natureza_oper_select = panel_TGroup_Box.child_window(class_name="TDBIComboBox", found_index=0)
|
1112
1174
|
natureza_oper_select.click()
|
1113
1175
|
await worker_sleep(1)
|
1114
1176
|
set_combobox("||List", "5656 - VENDA DE COMB OU LUB ADQ DE TERCEIRO C/ FIN S/ ESTOQUE")
|
@@ -1120,7 +1182,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
|
|
1120
1182
|
panel_TPage_Control= main_window.child_window(class_name="TcxPageControl", found_index=0)
|
1121
1183
|
panel_tabSheet = panel_TPage_Control.child_window(class_name="TcxTabSheet", found_index=0)
|
1122
1184
|
|
1123
|
-
field_quantidade = panel_tabSheet.child_window(class_name="TDBIEditNumber", found_index=
|
1185
|
+
field_quantidade = panel_tabSheet.child_window(class_name="TDBIEditNumber", found_index=8)
|
1124
1186
|
console.print("Inserindo a quantidade de Itens...\n")
|
1125
1187
|
field_quantidade.set_edit_text(quantidade)
|
1126
1188
|
await worker_sleep(1)
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/ahead_service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/rdp_service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/api/webhook_service.py
RENAMED
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/config/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/config/settings.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/repeat.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/retry.py
RENAMED
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/decorators/timeit.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dao/__init__.py
RENAMED
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dao/rpa_fila.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dao/rpa_robo.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/models/dto/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/jobs/__init__.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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/tasks/task_executor.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/logger.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/toast.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.90 → worker_automate_hub-0.5.92}/worker_automate_hub/utils/updater.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|